This project has consisted on designing and implementing a stereo vision system that is capable of estimating the distances to which some objects of interest are located.
The images acquisition system consists of two rewire cameras serial connected. The
software is implemented in C/C++ programming language, together with the OpenCV computer vision libraries. It is formed by two applications: the rest of them carries out the stereo calibration and the other one corrects the images, generates the disparity maps and calculates the distances.
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
1. Universidad de Alcalá
Escuela Politécnica Superior
Ingeniero de Telecomunicación
Proyecto Fin de Carrera
Sistema de posicionamiento de objetos mediante
visión estéreo embarcable en vehículos
inteligentes.
Autor: Jorge Tarlea Jiménez.
Director: Roberto Javier López Sastre.
TRIBUNAL:
Presidente: D. Saturnino Maldonado Bascón
Vocal 1º: D. José Mª Villafranca Continente
Vocal 2º: D. Roberto Javier López Sastre
CALIFICACIÓN: ............................................................ FECHA:....................
2. Sistema de posicionamiento de objetos mediante
visión estéreo embarcable en vehículos inteligentes
Jorge Tarlea Jiménez
20 de julio de 2009
4. Agradecimientos
Primeramente quiero dar las gracias a Roberto, mi tutor de proyecto, por todo el
tiempo que ha empleado en dirigir este trabajo, ayudarme siempre que me ha hecho falta
e incluso animarme a seguir cuando los resultados no eran lo esperado. Al verle todos
estos meses he aprendido que el tener ilusión y ganas por lo que uno está haciendo es tan
importante como el esfuerzo que ha de hay que hacer para lograr que las cosas salgan bien.
Las reuniones semanales que manteníamos en su despacho para hablar acerca del proyecto,
eran una ocasión en la que recibir consejos de un amigo y valiosas recomendaciones, que
seguro que el día de mañana me ayudarán a destacar en mi trabajo y en mi vida cotidiana.
Muchas gracias por la oportunidad que me ha brindado y por todo lo que me ha enseñado
en este tiempo.
Los momentos difíciles que se presentaron en estos años de carrera quedaron atrás gracias
al apoyo constante de mis padres y de mi hermana. Los tres han sido, quizá sin saberlo,
una pieza clave en mi vida. La perseverancia que siempre han demostrado en todo cuanto
han emprendido, se ha mostrado ante mis ojos como un modelo a seguir. Quiero darles las
gracias a mi padre y a mi madre por respetar la decisión que tome en su día de estudiar
esta carrera. No sólo por no retirar ese apoyo cuando las cosas me fueron mal, si no por
ayudarme a centrarme y por indicarme cuál era el camino correcto. A mi hermana quiero
agradecerle el cariño que me daba cuando me veía decaído, y sobre todo la fuerza que me
infundía el verla a mi lado día tras día estudiando con tanta entrega.
Gracias a María por animarme en los momentos de aqueza, y por comprender mejor
que nadie mi trabajo y dedicación. Ella ha conado en todas mis decisiones y siempre ha
estado a mi lado. Ha tenido más fe en mi de la que yo mismo he mostrado y eso nunca
podré agradecérselo lo suciente.
A David, por todos esos días de estudio en los que hemos luchado juntos, y por todos
aquellos momentos de apoyo. Por su preocupación y por su amistad desde los 4 años,
muchas gracias amigo.
A Fernando, por saber estar ahí siempre que se le necesitaba. Siempre ha cuidado del
grupo de amigos como si de él mismo se tratara. Siempre ha sido el nexo que nos ha
mantenido unidos.
A Pablo, por hacerme ver que muchas de las cosas de la vida por las que nos quejamos
no son tan importantes. Su espíritu de lucha en la vida y su constancia en el día a día
han sido un ejemplo para mi.
EE
5. AGRADECIMIENTOS EEE
A Bárbara, por el cariño que me ha regalado desde que la conozco, por su amistad, y
porque sin ella nunca habría conseguido superar los primeros años de carrera.
A Arturo, porque ha sido un buen amigo que ha demostrado delidad desde que nos
conocimos en el primer día de colegio.
A Javi, porque es una gran persona en la que se puede conar, y porque ha sido mi
compañero en la lucha por superar las dicultades en la Universidad. Mi más sincero
deseo de que todo le vaya bien durante lo que le queda de carrera.
Al carismático Eduardo, por compartir conmigo tantos buenos (y frikis ) momentos. Es
una de las personas que más me alegro de haber conocido durante esta etapa.
A Güil, por ser un excelente amigo que ha demostrado con creces que el estar lejos no es
impedimento para conservar una excelente amistad.
A Tamara, una grandísima amiga que me ha hecho ver que si uno se lo propone puede
conseguir todo lo que se proponga.
A Manolo, por ser ese amigo al que me une toda una vida y porque sé que, aunque nos
veamos poco, siempre se acuerda de mi.
A Jorge, por todas aquellas veces que me convencía para que saliéramos a hacer ejercicio.
Por todas esas tardes llenas de interesantes conversaciones, gracias.
Gracias a muchos otros amigos que siempre mostraron comprensión las veces que no
les pude dedicar el tiempo que se merecían, limitándose a restarle importancia con una
sonrisa.
A todos los miembros de mi familia que no cito aquí, pero a los que también les atribuyo
gran parte del apoyo recibido, gracias.
Gracias también a todos aquellos que ya no están y que siempre he tenido presente a lo
largo de este tiempo. A ellos también va dedicado este proyecto.
Y por último, gracias a Dios por ser la mano que me ayudaba a levantarme siempre que
me caía.
6. Resumen
En este proyecto se ha realizado el diseño e implementación de un sistema de visión
estéreo que permite la estimación de las distancias a las que se encuentran objetos de
interés dentro de su campo de visión.
El sistema de adquisición de imágenes se ha realizado utilizando dos cámaras rewire
conectadas en serie. El software implementado en C/C++ utiliza las librerías de visión
OpenCV. Se compone de dos aplicaciones: una de ellas permite hacer la calibración estéreo
de las cámaras y la otra corrige las imágenes, genera los mapas de disparidad y calcula
las distancias a los objetos.
EL
7. Abstract
This project has consisted on designing and implementing a stereo vision system that
is capable of estimating the distances to which some objects of interest are located.
The images acquisition system consists of two rewire cameras serial connected. The
software is implemented in C/C++ programming language, together with the OpenCV
computer vision libraries. It is formed by two applications: the rst of them carries out
the stereo calibration and the other one corrects the images, generates the disparity maps
and calculates the distances.
L
11. LISTA DE FIGURAS 4
4.10. Rangos de disparidades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.11. Algoritmo de Bircheld. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.12. Secuencia de correspondencias. . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.13. Disimilitud de píxeles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.14. Búsqueda de correspondencias con el algoritmo de Bircheld. . . . . . . . . 55
4.15. Rejilla de búsqueda reestructurada. . . . . . . . . . . . . . . . . . . . . . . 56
5.1. Diagrama de bloques del sistema completo. . . . . . . . . . . . . . . . . . . 59
5.2. Sistema de captura de imágenes. . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3. Fotografía del sistema de captura. . . . . . . . . . . . . . . . . . . . . . . . 61
5.4. Calibración de las cámaras. . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.5. Detección de esquinas del damero. . . . . . . . . . . . . . . . . . . . . . . . 63
5.6. Corrección de la distorsión y recticación de imágenes. . . . . . . . . . . . 66
5.7. Mapa de disparidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.8. Estimación de distancias a partir del mapa de disparidad. . . . . . . . . . . 69
5.9. Ayuda del programa de calibración de las cámaras. . . . . . . . . . . . . . 71
5.10. Ayuda del programa de estimación de distancias. . . . . . . . . . . . . . . . 72
5.11. Diagrama de ujo del programa de calibración. . . . . . . . . . . . . . . . . 73
5.12. Diagrama de ujo del programa de estimación de distancias. . . . . . . . . 74
6.1. Efectividad del algoritmo de detección de esquinas. . . . . . . . . . . . . . 76
6.2. Precisión en la recticación de imágenes. . . . . . . . . . . . . . . . . . . . 79
6.3. Recticación errónea debida a una solución extraña. . . . . . . . . . . . . . 80
6.4. Error calculando la media de las disparidades. . . . . . . . . . . . . . . . . 81
6.5. Error calculando el histograma de las disparidades. . . . . . . . . . . . . . 81
6.6. Comparación del error cometido usando la media y el histograma de dis-
paridades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.7. Comparación de las medidas frente a cambios de iluminación. . . . . . . . 83
6.8. Grabación de una persona alejándose. . . . . . . . . . . . . . . . . . . . . . 85
6.9. Grabación de exteriores desde un vehículo en movimiento. . . . . . . . . . 86
6.10. Grabación con poca luz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.11. Tiempo de ejecución de los algoritmos de búsqueda de correspondencias. . 90
6.12. Capacidad de proceso de los algoritmos de búsqueda de correspondencias. . 91
6.13. ¾Por qué Bircheld?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.14. Porcentajes de tiempos en la calibración. . . . . . . . . . . . . . . . . . . . 92
6.15. Porcentaje de tiempo empleado por Konolige en comparación con la detección. 93
6.16. Porcentaje de tiempo empleado por Bircheld en comparación con la de-
tección. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.1. Sistema integrado de visión estéreo. . . . . . . . . . . . . . . . . . . . . . . 95
12. Lista de tablas
3.1. Algoritmos para el cálculo de la matriz Fundamental. . . . . . . . . . . . . 29
4.1. Filtros de post-procesado. . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6.1. Tiempos de ejecución en la fase de calibración. . . . . . . . . . . . . . . . . 88
6.2. Tiempos de ejecución en la fase de estimación de distancias. . . . . . . . . 92
5
13. Capítulo 1
Introducción.
1.1. Descripción del trabajo realizado.
Este proyecto, titulado como Sistema de posicionamiento de objetos mediante visión
estéreo embarcable en vehículos inteligentes, tiene como objetivo el diseño y la imple-
mentación de un sistema de visión estéreo que permita posicionar de forma autónoma
objetos (ej.: automóviles, personas, etc.) que se encuentren presentes en el entorno que
rodea el vehículo en el cuál se encuentra empotrado. Con este proyecto se ha tratado de
obtener un sistema que aune lo que se ha venido haciendo estos años sobre mapas de
profundidad [8], [5], con algunas características presentes en los trabajos sobre estimación
de distancias mediante estéreo visión [1].
Primeramente se ha realizado es un montaje con dos cámaras de forma que constituyan el
sistema de adquisición de imágenes sobre el que trabajar. Posteriormente se ha procedido
a implementar el proceso mostrado en la Figura 1.1.
Rectificación
Calibración Búsqueda de Triangulación de
de
de las cámaras correspondencias los objetos
las imágenes
Figura 1.1: Estas son las fases principales de las que consta el proceso llevado a cabo en
el proyecto.
Finalmente se han realizado una serie de grabaciones, tanto en interiores como en
exteriores, estando el sistema en movimiento o parado, en diferentes condiciones de luz,
etc. Con esas imágenes se han efectuado numerosas pruebas que han permitido obtener
mapas de disparidad y distancias. Tras analizar los resultados obtenidos, se han corregido
fallos y se ha ido ajustando todo el sistema hasta lograr los objetivos planteados en un
principio.
6
14. CAPÍTULO 1. INTRODUCCIÓN. 7
1.2. Organización del documento.
Este libro se ha dividido en varias partes de forma que se facilite al lector la compren-
sión acerca de lo que aquí se plantea y del desarrollo llevado a cabo.
En el capítulo 2 se explica qué es el modelo de cámara y cuáles son los parámetros que lo
denen.
El tercer capítulo se dedica a explicar detalladamente la teoría epipolar. Esta permite
triangular objetos en el espacio a partir de las proyecciones que se producen en las imáge-
nes generadas por las dos cámaras. Además se presentan dos algoritmos de recticación
de imágenes y se explica su funcionamiento.
En el capítulo 4 se muestran dos de los métodos que se utilizan para buscar corresponden-
cias entre puntos de imágenes. Además se analiza la relación que existe entre los mapas
de profundidad generados a partir de las disparidades entre píxeles y las distancias reales
a los objetos.
El capítulo 5 da una visión más general del proceso completo, presentando el conjunto de
todos los módulos que componen el sistema y como interactúan entre sí. Por otro lado
profundiza acerca de la implementación de cada uno de ellos, resaltando aquellos aspectos
que han sido incluidos en la versión denitiva de este proyecto.
En el capítulo 6 se analizan detalladamente algunos datos extraídos a partir de las gra-
baciones realizadas con el sistema, y en base a ello se presentan los tiempos de ejecución
de las diferentes fases y las causas por las cuales se producen algunos errores.
El último capítulo del libro muestra las conclusiones que se han deducido a partir de todo
lo anterior y se trata de dar una idea de lo que podrían ser las futuras líneas de trabajo.
15. Capítulo 2
Calibración de la cámara.
2.1. Introducción.
A lo largo de este capítulo se procede a explicar los distintos aspectos involucrados
en la calibración de una cámara. Así mismo se presenta un método, mediante el cual
se podrá obtener el modelo que dene el comportamiento del dispositivo utilizado para
obtener imágenes.
2.2. Base teórica.
La calibración es un proceso que permite obtener una serie de parámetros que denen
la forma en la que una cámara interactúa con el mundo, el modo en el que se ve afectado
por las imperfecciones presentes en el hardware (lentes, sensor, etc.), y cómo corregir
dichas alteraciones. A continuación se explicará la base teórica sobre la que se asienta este
proceso.
2.2.1. El modelo de cámara.
Existen varios modelos que denen la geometría que indica cómo un objeto del mundo
real se proyecta sobre un plano (Ej.: sensor CCD), convirtiéndose en una imagen 2D. El
más sencillo se basa en el concepto de cámara oscura.
Tal y como se puede apreciar en la Figura 2.1, una cámara oscura es una caja que
permite a los rayos de luz penetrar en su interior a través de un pequeño agujero e incidir
sobre una supercie fotosensible. Por tanto, un objeto situado a una distancia Z respecto
a la pared agujereada, se ve proyectado de forma invertida en el plano imagen, situado a
una distancia f de dicha abertura.
El tamaño de este agujero tan solo permite el paso de una muy pequeña cantidad de
luz, es por ello que el uso de lentes es necesario en la práctica. Esto permite un incremento
del número de rayos que la atraviesan, de manera que se facilita la generación de la imagen
8
16. CAPÍTULO 2. CALIBRACIÓN DE LA CÁMARA. 9
Figura 2.1: Modelo de cámara oscura.
en condiciones lumínicas adversas. En este caso varía ligéramente la forma en la que los
rayos llegan al plano imagen, pero el modelo de cámara oscura sigue considerándose como
válido, aún cuando se usen una o más lentes.
En la Figura 2.2 se puede ver una representación geométrica equivalente del modelo
de cámara oscura, la cual facilitará la matemática empleada a partir de ahora.
Estas son algunas consideraciones a tener en cuenta:
El centro óptico C es el punto de la lente tal que cualquier rayo de luz que pasa por
él no sufre desviación. Por el momento se considerará como origen de coordenadas
del sistema.
El eje óptico es la línea imaginaria que parte del centro óptico y corta perpendicu-
larmente al plano imagen.
La distancia focal f es la distancia existente desde el centro óptico al plano focal.
Tiene el mismo valor que la señalada en la Figura 2.1.
El plano imagen o plano focal se sitúa en Z = f . Es el plano virtual donde se forma
la imagen sin inversión alguna (al contrario que en el caso de la Figura 2.1, donde
se producía una inversión en la imagen generada).
El punto principal p, es la intersección del eje óptico con el plano imagen. Lo habitual
que no esté alineado con el centro del sensor de la cámara. Este hecho se comentará
detalladamente en la sección 2.2.2.
Si se observa la geometría anterior desde la dirección del eje X resulta la Figura
2.3(a). Análogamente si se observa desde la dirección del eje Y, resulta la Figu-
ra 2.3(b). Debido a que en ambos casos se cumple una relación de semejanza de
triángulos, se puede armar lo siguiente,
y Y x X
= = (2.1)
f Z f Z
17. CAPÍTULO 2. CALIBRACIÓN DE LA CÁMARA. 10
Figura 2.2: Representación geométrica del modelo matemático basado en la cámara oscura.
=
Figura 2.3: Modelo de cámara oscura visto desde la dirección del eje X y eje Y respecti-
vamente
fX fY
(X, Y, Z) ⇒ ( , ) (2.2)
Z Z
Según este modelo, todo punto M del mundo real, se transformará en un punto m
de una imagen según la relación
m PM , (2.3)
donde P , es la matriz de proyección, que será descrita en detalle a lo largo del
apartado 2.2.2.
2.2.2. Parámetros intrínsecos.
La matriz de proyección P de la ecuación (2.3), permite transformar las coordenadas
de un punto 3D del mundo real en píxeles de una imagen. Se construye a partir de una
matriz K y un vector de valores nulos:
P = [K|0] , (2.4)
18. CAPÍTULO 2. CALIBRACIÓN DE LA CÁMARA. 11
Figura 2.4: Desplazamiento del punto principal respecto al centro de coordenadas de la
imagen.
fx s cx
K = 0 fy cy , (2.5)
0 0 1
donde la K es la matriz de calibración, la cuál está formada por una serie de paráme-
tros, denominados parámetros intrínsecos:
cx y cy indican el desplazamiento del centro de coordenadas del plano imagen, res-
pecto al punto principal. Según se muestra en la Figura 2.4, será nulo sólo si el eje
óptico coincide con el centro del sensor de la cámara, pero como ya se comentó en
la sección 2.2.1, el eje óptico no siempre atraviesa el centro de la imagen generada.
El factor s (skew factor ) determina el grado de perpendicularidad de las paredes
de los píxeles del sensor. Es inversamente proporcional a la tangente del ángulo
que forman los ejes X e Y , por lo que s tendrá un valor nulo si los píxeles son
rectangulares. Esto suele ser así en casi todos los sensores utilizados hoy en día.
fx y fy son dos distancias focales en píxeles. Son proporcionales a la longitud focal
f considerada en las ecuaciones (2.1) y (2.2), según
fx = f Sx , (2.6)
fy = f Sy , (2.7)
donde:
- f es la longitud focal física de la lente, en unidades de longitud (milímetros,
micras, etc.).
- Sx y Sy son el número de píxeles por unidad de longitud del sensor, a largo del
eje x y del eje y respectívamente.
Como es obvio, si el sensor tiene el mismo número de píxeles por unidad de longitud
en todas sus dimensiones, las dos focales fx y fy tendrán el mismo valor.
19. CAPÍTULO 2. CALIBRACIÓN DE LA CÁMARA. 12
Figura 2.5: Esquema que presenta cómo se produce la distorsión radial en una cámara.
Figura 2.6: Distorsión radial corregida.
2.2.3. Distorsiones.
Para que la relación (2.3) sea válida en la práctica, es necesario tener en cuenta las
distorsiones que se producen durante la formación de las imágenes.
Distorsión radial.
El uso de lentes facilita la entrada de luz, un enfoque adecuado y una mayor versati-
lidad, pero también introduce deformaciones en las imágenes que se forman en el sensor.
Uno de estos efectos la distorsión radial o distorsión en barrilete, y se muestra esquemá-
ticamente en la Figura 2.5. Esta distorsión es debida a que algunas lentes provocan que
los rayos más alejados del centro óptico, se curven mucho más que aquellos que inciden
diréctamente en las proximidades del centro de la lente.
Este tipo de distorsión se hace más acusada en la zona próxima a los límites de las
imágenes, tal y como puede apreciarse en el ejemplo de la Figura 2.6. Es importante
remarcar que también crece según disminuye la longitud focal de la lente usada o cuando
se usan ópticas de mala calidad.
La distorsión radial puede ser modelada mediante la serie de Taylor en torno a r = 0
mostrada en [6]. De esta forma las coordenadas de una imagen con distorsión quedan
como sigue,
xdist = L(˜) · x
r ˜ ydist = L(˜) · y ,
r ˜ (2.8)
20. CAPÍTULO 2. CALIBRACIÓN DE LA CÁMARA. 13
donde
(xdist , ydist ) es la posición de un píxel en la imagen distorsionada.
(˜, y ) es la posición de un píxel en la imagen corregida.
x ˜
√
r es la distancia desde el centro que se expresa como x2 + y 2 .
˜ ˜ ˜
L(˜) es el factor de distorsión y es igual a
r
L(˜) = (1 + k1 r2 + k2 r4 + k3 r6 + ...) ,
r (2.9)
donde
√
ˆ r2 = (xdist − xc )2 + (ydist − yc )2 .
ˆ ki son los coecientes de distorsión.
(xc , yc ) son las coordenadas del centro de la imagen.
Entonces, las coordenadas de los píxeles de la imágen corregida se calcularán así,
x = xc + L(r)(xdist − xc ) ,
˜ (2.10)
y = yc + L(r)(ydist − yc ) .
˜ (2.11)
En la práctica sólo suele ser necesario el uso de los coecientes k1 y k2 . Por el contrario,
para aquellas lentes que introduzcan mucha distorsión (Ej.: lentes baratas, ojos de pez
etc), será necesario tener en cuenta k3 para que la corrección se haga adecuadamente.
Distorsión tangencial.
Otro tipo de distorsión que se ha de tener en consideración a la hora de trabajar con
imágenes es la distorsión tangencial. En este caso las deformaciones producidas se deben
a un problema propio de la cámara, no de la lente.
Puede ocurrir que durante el proceso de fabricación, el sensor no quede perféctamente
pegado a la pared sobre la que se apoya. Esta situación se presenta en la Figura 2.7.
De esta forma la lente usada no estará paralela al plano donde se forma la imagen y se
producirá el tipo de distorsión mostrado en la Figura 2.8.
La distorsión tangencial se puede describir de forma sencilla con dos parámetros p1
y p2 , los cuales transforman las coordenadas de la imagen según dictan las siguientes
ecuaciones [9]
x = xdist + [2p1 ydist + p2 (r2 + 2x2 )] ,
˜ dist (2.12)
y = ydist + [2p2 xdist + p1 (r2 + 2ydist )] .
˜ 2
(2.13)
Lente cuyo ángulo de visión es muy grande.
21. CAPÍTULO 2. CALIBRACIÓN DE LA CÁMARA. 14
Figura 2.7: La imagen de la izquierda muestra una colocación inadecuada del sensor. Por
el contrario, la de la derecha no provocaría distorsión tangencial, ya que está colocado
corréctamente.
Figura 2.8: Ejemplo de distorsión tangencial.
2.2.4. Parámetros extrínsecos.
En el apartado 2.2.1 se asumió el hecho de que el centro óptico C era el origen de
coordenadas del mundo. Esto era así a efectos del cálculo de parámetros intrínsecos, con
lo cual el modelo era válido siempre que el sistema no fuera movido de su posición inicial.
Por otro lado, en la mayor parte de las aplicaciones prácticas es necesario que la cámara
se mueva o se gire, para captar adecuadamente la escena.
Por ello, para poder modelar el sistema con independencia de que su posición haya sido
alterada o de que un objeto se pueda referenciar respecto al origen de coordenadas de la
cámara, es necesario modicar la ecuación (2.3) introduciendo una nueva matriz W :
m PWM = P M , (2.14)
W = [R t] , (2.15)
donde:
R es una matriz de rotación, que representa un giro de la cámara (o de un objeto
respecto de ella). Tendrá una forma distinta dependiendo de respecto a que eje (X,
Y, Z) se haga la rotación:
22. CAPÍTULO 2. CALIBRACIÓN DE LA CÁMARA. 15
Figura 2.9: Rotación de la cámara respecto al eje Z.
1 0 0
Rx (Ψ) = 0 cosΨ sinΨ (2.16)
0 −sinΨ cosΨ
cosϕ 0 −sinϕ
Ry (ϕ) = 0 1 0 (2.17)
sinϕ 0 cosϕ
cosθ sinθ 0
Rz (θ) = −sinθ cosθ 0 (2.18)
0 0 1
Si el giro se realiza respecto al eje Z , tal y como se dibuja en la Figura 2.9, las
nuevas coordenadas quedarán de la siguiente forma:
X = Xcosθ + Y sinθ
X cosθ sinθ 0 X
Y = −sinθ cosθ 0 Y ⇔ Y = −Xsinθ + Y cosθ (2.19)
Z 0 0 1 Z Z = Z
Si el giro se hiciera respecto a los otros dos ejes (X o Y ), la operación se haría de
forma análoga, utilizando para ello la pertinente matriz de rotación R. Además se
23. CAPÍTULO 2. CALIBRACIÓN DE LA CÁMARA. 16
observaría que la componente correspondiente a dicho eje de rotación tampoco se
vería alterada.
t es un vector de translación que representa un desplazamiento del sistema de coor-
denadas. Permite indicar un cambio de posición de la cámara o de un objeto respecto
a ella. De esta forma Mfinal = Minicial − t.
Si se tiene en cuenta lo siguiente:
1. Una rotación en tres dimensiones se dene con la variación de tres ángulos (Ψ, Φ, θ).
2. Una translación en el espacio se especica con tres parámetros (x, y, z).
3. Los parámetros intrínsecos propios de la cámara son cinco (fx , fy , cx , cy , s).
Se concluye que es necesario conocer estos once parámetros de cada imagen que haya
generado una misma cámara, si se utilizar la expresión (2.14). Lo que se verá en el siguiente
apartado, es el método que se ha seguido en este proyecto para la obtención de dichos
parámetros.
2.3. Método de calibración.
Son varias las técnicas que han sido desarrolladas para llevar a cabo la calibración de
una cámara. En este proyecto se ha optado por seguir las directrices mostradas en [3],
que se basan en el algoritmo de calibración de Zhengyou Zhang [10] y en sus posteriores
mejoras [11].
La elección de este método se debe a varios motivos:
Facilidad de implementación: el uso de librerías de visión OpenCV [3] ha permitido
su programación sin mucha dicultad.
Sencillez de ejecución: tan sólo es necesario realizar varias capturas de un objeto
conocido, de manera que éste varíe su posición a lo largo de una serie de fotografías.
Validez de los resultados: los datos arrojados tras la calibración son tan válidos como
los que se obtienen con otros métodos [10], sin que se requiera un coste computacio-
nal elevado o inversión en caros equipos.
2.3.1. Procedimiento.
Como paso previo a la ejecución que permite obtener la calibración, ha sido necesario el
uso de un tablero de ajedrez que se ha imprimido sobre una supercie plana. Este objeto
A partir de ahora se utilizará indistintamente el término damero o tablero de ajedrez para hacer
referencia al objeto de calibración utilizado en este proyecto.
24. CAPÍTULO 2. CALIBRACIÓN DE LA CÁMARA. 17
Figura 2.10: Aunque no es una serie completa, se puede observar cómo el damero se ha
ido moviendo por diferentes zonas del encuadre.
de calibración sigue un patrón sencillo de zonas blancas y negras cláramente diferenciadas,
lo cual permite al algoritmo trabajar ecázmente e identicar regiones de forma precisa.
A continuación se describirán los pasos que se han llevado a cabo para el cálculo de los
parámetros intrínsecos y extrínsecos:
1. Realización de una serie de capturas como las de la Figura 2.10. Se ha de procurar
que el objeto de calibración varíe su posición y recorra la mayor parte del encuadre.
De este modo un número considerable de puntos se situará en las zonas más sensi-
bles a la distorsión! , y así se logrará una mayor precisión a la hora de calcular los
parámetros de distorsión y corregir la imagen.
2. Detección automática de la posición de las esquinas interiores del damero. Para ello
el algoritmo necesitará:
Las imágenes donde se muestra el tablero que convertirá a blanco y negro antes
de procesarlas.
El número de esquinas interiores que contiene el objeto de calibración. Se le
indicará cuántas hay en cada lado de forma independiente.
Si tras el proceso de búsqueda se detectaran todas las esquinas interiores de forma
satisfactoria, se obtendrían resultados similares a los mostrados en la Figura 2.11.
3. Cálculo de los parámetros intrínsecos y extrínsecos mediante la resolución de una
homografía entre puntos.
4. Cálculo de los parámetros de distorsión que permitirán corregir posibles aberraciones
de las imagen.
Los dos últimos pasos se explicarán detalladamente a lo largo de los siguientes dos
apartados.
! En el caso de la distorsión tangencial, éstas serían los bordes de la imagen.
Será necesario que todas las esquinas interiores hayan sido detectadas, pues el sistema de ecuaciones
que se planteará posteriormente necesitará el mismo número de puntos por cada imagen.
25. CAPÍTULO 2. CALIBRACIÓN DE LA CÁMARA. 18
Figura 2.11: En estas dos capturas se aprecia cómo todas las esquinas interiores han sido
detectadas.
Figura 2.12: En este gráco se puede observar la homografía existente para cualquier
punto del plano objeto y los del plano imagen.
2.3.1.1. Cálculo de los parámetros extrínsecos e intrínsecos.
Para el cálculo de ambas familias de parámetros se asume primeramente una relación
de homografía# entre los puntos detectados del tablero y los puntos de la imagen formada
en el sensor de la cámara, según se muestra en la Figura 2.12.
Una homografía de este tipo tiene una expresión tal que
m = αHM . (2.20)
Si se compara con la ecuación (2.14), se podrá apreciar que αH ⇔ P W , donde alpha no
es más que un mero factor de escala.
Teniendo en cuenta las ecuaciones (2.5) y (2.15), y expresando los puntos origen y
destino en coordenadas homogéneas$
# En este caso una homografía tan sólo conlleva un cambio de plano.
$ Será necesario para describir el espacio proyectivo en el que se está trabajando.
26. CAPÍTULO 2. CALIBRACIÓN DE LA CÁMARA. 19
X
x fx s cx
(
) Y
m = y = αKW M = α 0 fy cy r1 r2 r3 t , (2.21)
Z
1 0 0 1
1
donde r1 , r2 y r3 son las columnas de la matriz de rotación R, t el vector de translación
y el resto de parámetros los ya comentados con anterioridad en la sección 2.2.2.
Como los puntos 3D del objeto de calibración se encuentran en el mismo plano, es
posible simplicar la ecuación anterior estableciendo que la coordenada Z sea nula. Esto
provoca que el término r3 no afecte en modo alguno a la expresión, la cual queda reducida
a
X
) Y
x
(
y = αK r1 r2 t .
(2.22)
0
1
1
Por todo lo anterior, se concluye que la homografía H existente entre los puntos del
damero y los detectados en la imagen generada, puede expresarse como
( ) ( )
H = h1 h2 h3 = αK r1 r2 t , (2.23)
deduciéndose de la ecuación anterior el siguiente sistema
h1 = αKr1 h2 = αKr2 h3 = αKt . (2.24)
Como toda matriz de rotación R es ortonormal, el módulo de cualquiera de sus co-
lumnas ri valdrá uno y además serán ortogonales entre sí. Utilizando estas propiedades y
lo anteriormente expuesto [9], se derivan el siguiente par de restricciones
h1 T K −T K −1 h2 = 0 , (2.25)
h1 T K −T K −1 h2 = 0 . (2.26)
Se dene por simplicidad de notación
B11 B12 B13
B = K −T K −1 = B12 B22 B23 . (2.27)
B13 B23 B33
Finalmente se muestran las expresiones [9] que permitirán al algoritmo de calibración
calcular los parámetros intrínsecos
√
λ
fx = , (2.28)
B11
27. CAPÍTULO 2. CALIBRACIÓN DE LA CÁMARA. 20
√
λB11
fy = , (2.29)
B11 B22 − B12
2
scy f2
cx = − B13 , (2.30)
f λ
B12 B13 − B11 B23
cy = , (2.31)
B11 B22 − B122
B13 + cy (B12 B13 − B11 B23 )
2
λ = α−1 = B33 − , (2.32)
B11
2
B12 fx fy
s=− . (2.33)
λ
Por otra parte, retomando las ecuaciones que denen la homografía y siendo conocidos
los parámetros intrínsecos, se pueden obtener fácilmente los parámetros extrínsecos:
r1 = λK −1 h1 , (2.34)
r2 = λK −1 h2 , (2.35)
r 3 = r 1 × r2 , (2.36)
t = λK −1 h3 . (2.37)
2.3.1.2. Cálculo de los parámetros de distorsión.
Una vez obtenidos los parámetros intrínsecos, y habiendo supuesto que no existían
distorsiones y habiendo tenido en cuenta las relaciones (2.10), (2.12) y (2.13)
( ) ( ) ( )
xsindist xdist 2p1 xdist ydist + p2 (r2 + 2x2 d ist )
2 4
= (1+k1 r +k2 r +k3 r ) 6
+ sin
. (2.38)
ysindist ydist 2p2 xdist ydist + p1 (r2 + 2ysind ist )
2
Aplicando un algoritmo de minimización no lineal se podrán obtener los parámetros
de distorsión. Inicializándolos a cero, se procederá al calculo de nuevos valores de forma
iterativa. El algoritmo nalizará cuando los parámetros calculados permitan obtener una
imagen en la que el error debido a la distorsión sea próximo a cero.
2.3.2. ¾Cuántas imágenes y esquinas detectadas son necesarias
para realizar la calibración?.
En la parte nal de este capítulo, se deducirán cuantas capturas del damero son ne-
cesarias para obtener unos parámetros de calibración precisos. Así mismo se establecerán
las dimensiones adecuadas del objeto de calibración.
Considerando que el damero tiene N esquinas interiores y que se tienen J imágenes:
28. CAPÍTULO 2. CALIBRACIÓN DE LA CÁMARA. 21
Las J imágenes del tablero de ajedrez imponen un total de 2N J restricciones% , una
por cada esquina detectada.
5 son los parámetros intrínsecos y 6J los parámetros extrínsecos a calcular durante
el proceso.
Si se resuelve la ecuación 2N J ≥ 6J + 5, se obtiene que para J = 2 tan solo se
necesitarían N = 5 esquinas.
En la práctica, se ha comprobado que es necesario un número superior a 2 imágenes para
obtener una calibración precisa. En particular, en el proyecto descrito en este libro:
El damero utilizado tenía 8 × 6 = 48 esquinas interiores (N = 48).
En ninguna de las pruebas fue necesario un lote con más de 7 imágenes (J = 7), si
bien en las últimas pruebas se utilizaron muchas más.
% Se multiplica por 2 debido a que cada punto detectado tiene dos componentes x e y .
Al menos son necesarias dos imágenes para establecer la homografía del punto 2.3.1.1.
29. Capítulo 3
Visión estéreo.
3.1. Introducción.
El concepto de visión estéreo se puede entender como el proceso visual mediante el
que se logra una percepción de profundidad, gracias a la separación de los ojos.
A lo largo de este capítulo se va a explicar la manera en la que se ha emulado este fenómeno
mediante un sistema de captura de imágenes, y cómo se han utilizado los resultados
obtenidos para triangular objetos. Además se abordará la resolución de los problemas que
puedan surgir a la hora de diseñar, construir, y utilizar un sistema como este.
3.2. Geometría epipolar.
Con una sola cámara es posible determinar sin incertidumbre, cómo un punto 3D del
mundo real se transforma en un punto 2D perteneciente a imagen. Se puede establecer
la forma en la que las coordenadas físicas de la localización de un punto en el espacio se
transforman en las coordenadas en píxeles de su proyección en la imagen.
Sin embargo al intentar la operación inversa se presenta una grave problema. A partir
de una sola imagen de la escena no se puede averiguar sin ambigüedad a que punto
tridimensional corresponde cada píxel.
Así pues se hace necesario emplear dos cámaras que permitan capturar simultáneamente
imágenes de una misma escena según se muestra en la Figura 3.1, y así poder generar
un mapa de profundidad que permita calcular con certeza las distancias a los objetos de
interés.
Esto último es posible gracias a la geometría epipolar, geometría básica usada en de
visión estéreo, que proporciona las herramientas para relacionar dos cámaras entre sí y el
mundo real.
Partiendo del esquema de la Figura 3.2 se considerará lo siguiente:
M es un punto del espacio. Se proyecta en cada una de las cámaras izquierda y
derecha, generando los puntos mL y mR respectívamente.
22
30. CAPÍTULO 3. VISIÓN ESTÉREO. 23
Figura 3.1: Visión estéreo.
OL y OR son los centros ópticos (o de proyección) de las cámaras.
ΠL y ΠR son los planos proyectivos donde se formarán las imágenes.
La rectas eL mL y eR mR son las llamadas líneas epipolares LL y LR .
eL y eR son los epipolos. El epipolo se dene como la proyección del centro óptico
de la cámara derecha sobre el plano de proyección izquierdo (y viceversa). Además
toda línea epipolar de una imagen atraviesa el epipolo de la misma.
El plano formado por el punto M y los dos centros ópticos de las cámaras es el
plano epipolar Ψ . Se dene mediante
Ψ = PL T LL = PR T LR , (3.1)
expresión que es función de las líneas epipolares LL y LR , y de las matrices de
proyección PL y PR de las cámaras.
Observando la cámara izquierda según se muestra en la Figura 3.3, se puede ver
cláramente que cualquier punto situado en la recta mL OL tiene una misma proyección
mL . Por ello a partir de una única proyección mL no es posible determinar a que punto
M corresponde la misma. Ésta ambigüedad, de la que se habló al comienzo de esta parte
del capítulo, no permite estimar la distancia a la que se encuentra un punto 3D respecto
a su proyección sobre la cámara. Todo lo explicado ocurrirá de forma análoga para el caso
de la cámara derecha.
Para poder utilizar la geometría epipolar, y así poder triangular, se han de tener en
cuenta la siguiente lista de armaciones:
Todo punto M dentro del campo de visión de las cámaras se encuentra situado en
el plano epipolar, tendrá dos proyecciones (mL , mR ).
31. CAPÍTULO 3. VISIÓN ESTÉREO. 24
Figura 3.2: Geometría epipolar.
Figura 3.3: En esta gura se puede observar como una misma proyección puede deberse
ca varios puntos y como se proyectan éstos en la línea epipolar de la otra imagen.
Sea un punto mi situado en el plano proyectivo de una de las cámaras. Entonces
la proyección asociada de la otra imagen se situará a lo largo de la línea epipolar
de esa otra cámara. Esto establece una imposición llamada restricción epipolar, la
cuál dictamina que una vez conocida la geometría epipolar del montaje, es posible
realizar una búsqueda bidimensional de los pares de proyecciones a lo largo de las
líneas epipolares. Esto permitirá un ahorro computacional a la hora de realizar
búsquedas de correspondencias, que son los pares de proyecciones asociadas a un
mismo punto M del espacio 3D. Además ayudará a descartar falsos positivos más
fácilmente.
Cualquier plano epipolar Ψ asociado a un punto del espacio, intersecará siempre a
la recta que une OL y OR .
32. CAPÍTULO 3. VISIÓN ESTÉREO. 25
Figura 3.4: La matriz esencial tiene toda la información sobre la posición de una cámara
respecto a la otra. Es decir la translación T y la rotación R relativa.
Si dos puntos M1 y M2 son visibles por ambas cámaras y aparecen en el horizonte en
una disposición determinada, entonces sus proyecciones en las imágenes guardarán
el mismo orden.
Todos estos supuestos facilitarán el cálculo de correspondencias entre pares de imáge-
nes y permitirán la triangularización de puntos en el espacio. En otras palabras, obtener
la posición física de un punto en el espacio 3D.
3.3. Las matrices Fundamental y Esencial.
En esta sección se va a hablar de dos matrices de suma importancia a la hora de
trabajar con geometría epipolar:
- La matriz esencial E . Contiene información sobre la traslación y rotación que rela-
ciona las dos cámaras físicamente en el espacio.
- La matriz fundamental F . Proporciona la misma información que E , con el añadido
de que los parámetros intrínsecos de ambas cámaras también forman parte de ella.
3.3.1. La matriz Esencial.
La matriz esencial E es púramente geométrica, es decir, no da ninguna información
acerca de las propiedades intrínsecas de las cámaras. Lo que realmente hace es relacionar
la situación de un punto M visto desde la cámara izquierda con la localización del mismo
punto visto desde la cámara derecha, todo ello en coordenadas físicas. A continuación se
procede a deducir matemáticamente la matriz esencial.
33. CAPÍTULO 3. VISIÓN ESTÉREO. 26
Sean ML y MR a la posición tridimensional del punto M referida al origen de coordenadas
de la cámara izquierda y derecha respectívamente. Además supóngase que el origen de
coordenadas global del sistema es el centro de proyección OL como se muestra en la Figura
3.4. En consecuencia:
La posición del punto M respecto a ese origen de coordenadas global coincidirá con
ML .
El origen de coordenadas OR estará a una distancia T de OL . T es el vector de
translación.
El punto M visto desde la cámara derecha podrá expresarse como
MR = R(ML − T) . (3.2)
Sea un plano denido por un vector n normal, que atraviesa un punto a de ese plano.
Entonces se cumplirá que todos los puntos x pertenecientes al mismo plano, obedecerán
la siguiente restricción
(x − a)T n = 0 . (3.3)
Como ML se encuentra dentro del mismo plano epipolar, y además T × ML es un
vector ortogonal a ML , entonces se podrá aplicar la propiedad (3.3) de forma que
(ML − T)T (T × ML ) = 0 . (3.4)
Obsérvese que se cumple R−1 = RT , ya que cualquier matriz de rotación R es ortonor-
mal y por tanto su traspuesta y su inversa son iguales. Entonces la ecuación (3.2) puede
expresarse como (ML − T) = R−1 MR , por lo que
(RT MR )T (T × ML ) = MR T R(T × ML ) = 0 . (3.5)
Además, es posible [3] reescribir el producto escalar T × ML como
0 −Tx Ty
T × ML = SML ⇒ S = Tx 0 −Tx , (3.6)
−Ty Tx 0
así que la ecuación (3.5) se podrá expresar como
MR T RSML = 0 . (3.7)
Considérense ahora las relaciones
fR ML
mL = , (3.8)
ZL
34. CAPÍTULO 3. VISIÓN ESTÉREO. 27
fR MR
mR = . (3.9)
ZR
Teniéndolas en cuenta, dividiendo la ecuación (3.7) por ZL ZL
fL fL
y deniendo E = RS
entonces
mR T EmL = 0 , (3.10)
que es la expresión que relaciona los puntos de las imágenes de ambas cámaras. Esta
relación se cumple gracias a la matriz esencial E , la cuál tiene las siguientes características:
Tiene dimensiones 3 × 3 y contiene cinco parámetros: tres que indican la rotación y
dos que indican la dirección de la translación.
Su determinante es cero, ya que es una matriz de rango 2. Como consecuencia, da
lugar a un sistema lineal de ecuaciones que arrojará más de una solución.
3.3.2. La matriz Fundamental.
Como ya se ha comentado con anterioridad, la matriz E contiene información acerca de
la geometría relativa a las dos cámaras, una respecto a la otra. Sin embargo no proporciona
los parámetros intrínsecos de las cámaras del sistema y tampoco maneja las coordenadas
de los puntos en píxeles. Esto último es necesario si se quiere relacionar los píxeles de
una imagen con sus correspondientes líneas epipolares en la otra, de manera que se pueda
facilitar la búsqueda de correspondencias. Es por ello que el cálculo y uso de la matriz
fundamental F se hace indispensable si se quieren cumplir los objetivos de este proyecto.
A continuación se procede a derivar la matriz F .
Sea mL un punto de la imagen izquierda situado sobre la línea epipolar LL . Según se
expuso en el apartado 3.2, toda línea epipolar pasa por el epipolo de la imagen en cuestión,
por lo que LL se podrá denir como
LL = eL × mL = [eL ]× mL , (3.11)
donde
0 −ex ey
[eL ]× = ex 0 −ex . (3.12)
−ey ex 0
Teniendo en cuenta la ecuación (3.1)
LR (PR )−1 PL T LL , (3.13)
y usando además la expresión (3.11)
35. CAPÍTULO 3. VISIÓN ESTÉREO. 28
LR (PR )−1 PL T [eL ]× mL , (3.14)
donde la matriz fundamental es
F (PR )−1 PL T [eL ]× . (3.15)
El hecho de que mR se encuentre a lo largo de la línea LR se puede expresar así
mR T LR = 0 , (3.16)
que junto con las ecuaciones (3.14) y (3.15) permite llegar a la expresión que relaciona
los puntos de ambas imágenes
mR T F mL = 0 . (3.17)
De todo lo anterior se deduce que dada la matriz F y un punto de una imagen mL o
mR entonces
LR F mL , (3.18)
LL F mR . (3.19)
Finalmente, si se tiene en cuenta que F (PR )−1 PL T [eL ]× y que [a]× a = 0 para
cualquier a entonces
F eL = 0 , (3.20)
restricción que se usa para calcular el epipolo de la imagen izquierda.
3.3.3. Cálculo de la matriz F .
Es importante señalar que la matriz esencial E se relaciona con la matriz fundamental
por medio de la siguiente expresión
−1 −1
F = (PR )T EPL , (3.21)
por lo que en este apartado tan sólo se explicará la forma en la que el programa que
se ha implementado en este proyecto calcula la matriz F . Una vez realizada esa tarea, el
programa efectuará el cálculo de la matriz E a partir de la matriz F y las matrices de
proyección, según la expresión anterior.
Existen varios algoritmos que, partiendo de la ecuación (3.17), calculan F . Todos ellos
requieren de un número de puntos de cada imagen para su correcta ejecución. En el caso
de estudio estos puntos son las esquinas detectadas en el damero. Según muestra la Tabla
36. CAPÍTULO 3. VISIÓN ESTÉREO. 29
Nombre del algoritmo N º de puntos por imagen
7-puntos =7
8-puntos ≥8
RANSAC ≥8
LMedS ≥8
Tabla 3.1: Algoritmos para el cálculo de la matriz Fundamental y los puntos necesarios
en cada imagen.
3.1 este número variará dependiendo del algoritmo.
El algoritmo de 7-puntos usa exáctamente 7 puntos de cada imagen en conjunción con
el hecho de que la matriz F siempre es de rango 2. La desventaja de esta restricción es
que provoca que hasta tres matrices F puedan darse como posible solución, y llegado el
caso habría que realizar una discriminación adicional de los resultados.
El algoritmo de 8-puntos calcula F a partir de un sistema lineal de ecuaciones. Si se
utilizan más de 8 puntos la solución será mejor, ya que se podrá aplicar un algoritmo de
minimización del error.
En cualquier caso, el problema de ambos algoritmos es que son muy sensibles respecto a
los valores atípicos (esquinas del damero cuya detección no ha sido sucientemente preci-
sa), incluso si se usan más de 8 puntos.
Por otro lado, los algoritmos RANSAC (RAndom SAmpling Consensus) y LMedS (Least
Median of Square) son más robustos, ya que tienen la capacidad de reconocer y eliminar
los valores atípicos, por lo que la solución no se ve alterada debido a la presencia de estos.
Para obtener resultados precisos con cualquiera de ellos es necesario disponer de más de
8 puntos.
De estos 4 algoritmos, el elegido para su implementación en este proyecto es el algoritmo
RANSAC [6], ya que es muy robusto y uno de los más utilizados, lo que hace fácil su
implementación. En cada una de las iteraciones que RANSAC realiza, se toma un sub-
conjunto de los puntos de la imagen de manera aleatoria y con ellos se calcula la matriz
fundamental. Esta se va renando en cada repetición, hasta que se cumple un criterio de
calidad [9] que permita dar validez al resultado obtenido.
3.4. Caso práctico: montaje frontal paralelo.
En la Figura 3.5 se muestra el montaje más sencillo que permite calcular distancias
de objetos situados a una distancia del mismo. En ella se pueden observar dos cámaras
situadas a una misma altura, dispuestas en un mismo plano y de tal forma que sus ejes
ópticos estén perféctamente paralelos, es decir que se crucen en el innito.
37. CAPÍTULO 3. VISIÓN ESTÉREO. 30
Figura 3.5: Montaje frontal paralelo: las dos cámaras se encuentran en el mismo plano y
además sus ejes ópticos están paralelos.
Tres son los sistemas de coordenadas considerados en la imagen:
1. Dos sistemas de coordenadas propios de cada cámara, cuyos orígenes se encuen-
tran en los centros ópticos. Los píxeles de cada imagen son referidos al origen de
coordenadas que le corresponda.
2. Un sistema de coordenadas global situado en el centro óptico de la cámara izquierda.
Es el mismo que se utilizó en el apartado 3.3.1 de este capítulo.
Suponiendo una situación ideal, las cámaras estarán separadas una distancia T medida
en unidades de longitud, tendrán una misma longitud focal (fL = fR = f ), y además las
coordenadas de los puntos principales pL y pR coincidirán si se referencian a los sistemas
de coordenadas de cada una de las cámaras.
Todas estas propiedades del sistema ayudarán a que la búsqueda de correspondencias
entre las dos imágenes se logre más ecázmente. Es por eso que en este proyecto, esa ha
sido la opción elegida para construir el sistema de visión estéreo.
3.5. Recticación de imágenes.
En la práctica se ha tratado de que las dos cámaras estén dispuestas de la forma más
parecida al montaje frontal paralelo explicado anteriormente. Si se logra una disposición
38. CAPÍTULO 3. VISIÓN ESTÉREO. 31
Figura 3.6: Un montaje frontal paralelo ideal como el mostrado, hace que la búsqueda de
correspondencias se convierta en un problema unidimensional. Esto es debido a que las
correspondencias se situarán en la misma línea horizontal.
ideal como la de la Figura 3.6 se conseguirá que la búsqueda de correspondencias se
convierta en un problema unidimensional es decir, que las dos proyecciones de un mismo
punto se encuentren situadas a lo largo de una misma recta horizontal que atraviese ambas
imágenes. Esto provocaría una disminución del tiempo de cómputo y un aumento de la
probabilidad de acierto a la hora de buscar correspondencias de puntos.
Sin embargo, aunque el montaje se haya hecho con sumo cuidado, puede que las
cámaras estén giradas un ángulo inapreciable a simple vista. Aunque muy pequeño, este
giro puede afectar notablemente al resultado nal, por lo que se hace necesario el uso de
algoritmos que corrijan los posibles desplazamientos de píxeles debido a las diferencias
entre el montaje llevado en la práctica y el ideal propuesto en el apartado 3.4.
3.5.1. Algoritmos de recticación.
Como uno de los objetivos del proyecto es realizar la búsqueda de correspondencias de
la forma más sencilla y precisa posible, será necesario que las las de píxeles de cada imagen
estén complétamente alineadas. Para asegurar que esto se cumple con la mayor exactitud,
se dispone de dos métodos matemáticos [3] que recticarán las imágenes, de manera que
estas se asemejen a las tomadas si el montaje de las cámaras fuera complétamente ideal.
De ese modo las líneas epipolares se situarán paralelas al eje x y por ello tan sólo hará
falta buscar correspondencias de puntos lo largo de esa dirección.
39. CAPÍTULO 3. VISIÓN ESTÉREO. 32
=
Figura 3.7: Se puede apreciar como el objeto de la Figura a) tiene la misma proyección
en b) a pesar de haber sido escalada y acercada a las cámaras.
Algoritmo de Hartley.
El algoritmo de Hartley trata de encontrar homografías que transformen las imágenes,
de manera que sus epipolos se sitúen en el innito. Para ello utiliza correspondencias entre
puntos de pares de imágenes que o bien le son previamente dados, o bien es él mismo quien
las busca en el set de imágenes a recticar. En este proyecto las esquinas detectadas en un
damero capturado simultáneamente por las dos cámaras valdrían para este n. Por tanto,
Hartley es capaz de calcular la matriz F a partir de puntos que él mismo decida utilizar.
Su mayor ventaja por tanto, es que es capaz de obtener la matriz F por si mismo sin que
se haya calculado previamente.
Entre las desventajas que caracterizan a este algoritmo, destaca el hecho de que no tiene en
cuenta las matrices intrínsecas de las cámaras. Tampoco es capaz de calcular las matrices
de proyección recticadas, que son las matrices PL y PR que contienen los parámetros
intrínsecos tal que las longitudes focales, centros ópticos y puntos principales son iguales
en ambas cámaras. Esto se traduce en que Hartley no tiene sentido de la escala de los
objetos que aparecen en la escena. Por ejemplo, supóngase un objeto en la escena. Dado
el caso, no se sabría si mide 10 metros de altura y está lejos de las cámaras, o si por el
contrario es una miniatura que tiene 10 centímetros de alto y está cerca de ambas. Este
efecto se puede apreciar en las guras 3.7(a) y 3.7(b), y es un grave problema si se desea
hacer una estimación de las distancias de los puntos en el espacio.
Otra desventaja es que este algoritmo no es adecuado para trabajar con imágenes donde
la distorsión sea elevada. Por ello es conveniente utilizar imágenes donde estas hayan sido
corregidas mediante una calibración de las cámaras. En consecuencia, aunque Hartley sea
capaz de calcular F sin un proceso previo de calibración, esto casi nunca es recomendable
y por tanto habrá que obtener los parámetros intrínsecos en la mayoría de las ocasiones.
A continuación se muestran los pasos [6] que sigue el algoritmo de recticación de
Hartley de forma resumida:
1. Identicación de una serie de correspondencias xL ↔ xR en cada par de imágenes.
Se necesitan al menos 7 pares, si bien es preferible tener más con el n de ganar
precisión.
40. CAPÍTULO 3. VISIÓN ESTÉREO. 33
2. Cálculo de la matriz fundamental de forma similar a lo explicado en el apartado
3.3.2. Esto no será necesario si F ha sido obtenida previamente.
3. Cálculo de los epipolos de las imágenes según las expresiones
F eL = 0 , (3.22)
(eR )T F = 0 , (3.23)
que han sido derivadas a partir de lo expuesto en la sección 3.3.2.
4. Búsqueda de la homografía HR que moverá el epipolo derecho eR a un punto en el
innito. Esta homografía tendrá varios grados de libertad, lo que hará que algunas de
las soluciones generen imágenes distorsionadas. Para que esto no ocurra se denirá
dicha homografía en el entorno de un determinado punto x0 como
HR = GRT , (3.24)
donde
1 0 0
G=0 1 0 , (3.25)
−1
f
0 1
y donde los elementos de la expresión 3.24 son:
T es el vector de translación que moverá x0 al origen del eje x.
R es la matriz de rotación que trasladará el epipolo eR al punto (f, 0, 1) en el
eje x.
G es la matriz encargada de llevar el punto (f, 0, 1) al innito.
En denitiva, esta homografía HR funcionará para los puntos cercanos a un x0
arbitrario, de manera que tan sólo se verán sometidos a una translación y rotación.
5. Encontrar la transformación HL para la imagen izquierda de forma que se minimice
la suma distancias
∑
d(HL xLi , HR xRi ) . (3.26)
i
6. Finalmente se transforman las imágenes derecha e izquierda con las homografías
HR y HL respectívamente, por lo que resultarán imágenes con sus las de píxeles
alineadas. En la Figura 3.8(b) se ve cómo los puntos de la imagen izquierda y sus
correspondencia en la derecha se encuentran a lo largo de una línea horizontal que
cruza ambas imágenes.
41. CAPÍTULO 3. VISIÓN ESTÉREO. 34
=
Figura 3.8: Aunque ambos hacen una buena recticación de los píxeles, se puede observar
en b) que Hartley introduce mucha más distorsión que Bouguet en a), provocando que el
área en común de ambas imágenes se reduzca considerablemente.
Algoritmo de Bouguet.
El algoritmo de Bouguet necesita el vector T y la matriz de rotación R que relacionan
las cámaras una respecto a la otra, por lo que es necesario haberlos obtenido préviamente.
Una primera ventaja de este método es que trata de que al transformar las imágenes, se
muestre un elevado porcentaje de la parte relativa al solapamiento entre ambas cámaras.
Si se observa las guras 3.8(a) y 3.8(b) se verá que para un mismo par de imágenes,
el algoritmo de Bouguet puede llegar a comportarse mucho mejor que el de Hartley en
cuanto a este efecto se reere.
Otra ventaja del algoritmo de Bouguet es que logra minimizar las distorsiones intro-
ducidas durante la recticación. Esto lo consigue partiendo del hecho de que la rotación
R de la imágen derecha equivale a dividir el giro completo en dos rotaciones rL y rR que
se aplican a la imágen izquierda y derecha respectivamente. Con esto conseguiría que los
rayos principales estuvieran paralelos (y por tanto los planos proyectivos coplanares). Sin
embargo no se lograría que las las de píxeles quedaran alineadas. Es por eso que lo que
realmente hace es calcular dos matrices RL y RR a partir de una matriz de rotación Rrect
previamente recticada.
42. CAPÍTULO 3. VISIÓN ESTÉREO. 35
Rrect es la matriz que trasladará el epipolo eL al innito y alineará las líneas epipolares
a lo largo del eje x. Estando formada por tres vectores, el primero de ellos será el vector
unitario normalizado que indique la dirección del epipolo eL , coincidiendo esta con el
vector de translación T normalizado
T
e1 = . (3.27)
T
El siguiente vector que conformará Rrect debe ser ortogonal a e1 , ya que toda matriz de
rotación está formada por vectores unitarios ortogonales entre sí. Una elección acertada
es un vector que además sea ortogonal al rayo principal de la cámara izquierda. Así
pues haciendo el producto vectorial de la dirección del rayo principal y el vector e1 , y
normalizando se obtiene
(−Ty Tx 0)T
e2 = √ . (3.28)
2 2
Tx + Ty
Y por último el tercer vector será e3 = e1 × e2 , de forma que la matriz Rrect quedará
T
e1
Rrect = e2 T , (3.29)
e3 T
por lo que
RL = Rrect rL , (3.30)
RR = Rrect rR , (3.31)
que serán las matrices de rotación recticadas que girarán ambas cámaras, consiguien-
do que sus ejes ópticos queden paralelos y las las de píxeles de sus imágenes alineadas.
Bouguet además calcula las matrices de proyección PRrect y PLrect recticadas, y a partir
de ellas construye la siguiente matriz
1 0 0 −pL x
0 −pL y
1 0
Q= , (3.32)
0 0 0 f
−1 pL x −pRx
0 0 Tx Tx
donde
pL x y pR x son las coordenadas del eje x de los puntos principales de las cámaras
izquierda y derecha.
f es la longitud focal de las cámaras recticadas. Tendrá un único valor común a
ambas.
43. CAPÍTULO 3. VISIÓN ESTÉREO. 36
Tx es la componente x del vector de translación T que relaciona una cámara respecto
a la otra.
La utilidad de esta matriz Q reside en el hecho de que permite proyectar puntos 2D de
las imágenes al mundo real, consiguiendo establecer sin ambigüedad una correspondencia
entre los puntos 3D y píxeles de las imágenes
x X
y Y
Q = , (3.33)
d Z
1 W
donde
(x, y) son las coordenadas euclídeas en píxeles del punto de la imagen.
(X, Y, Z, W ) son las coordenadas homogéneas del punto 3D del mundo real. Sus
coordenadas euclídeas serían ( W , W . W ).
X Y Z
d representa la disparidad. Este parámetro se dene básicamente como la diferen-
cia de píxeles en una correspondencia de pares puntos de una imagen izquierda y
derecha.
Finalmente se concluye que Bouguet es un algoritmo que permite recticar las imá-
genes con menos distorsión que el algoritmo de Hartley. Además facilita una herramienta
para obtener la localización 3D de los objetos de la escena, siendo necesario para ello obte-
ner la disparidad de cada uno de los píxeles de las imágenes. Cómo calcular esa disparidad
es lo que se explicará en el siguiente capítulo.
Las unidades de estas coordenadas serán las mismas que las de las longitudes focales con las que se
haya trabajado durante todo el proceso (Ej.: cm, mm, etc.).
44. Capítulo 4
Estimación de distancias.
4.1. Introducción.
A lo largo de las páginas de este libro se ha visto cómo calibrar las cámaras que forman
parte del sistema de captura, cómo corregir las distorsiones de las imágenes debidas a las
lentes y la forma de recticar las las de píxeles de tal modo que estén alineadas. En este
capítulo se explicará cómo buscar correspondencias entre píxeles de las dos imágenes y
así poder generar mapas de profundidad que permitan estimar distancias a los objetos.
4.2. Concepto de disparidad.
En la última parte del capítulo anterior se utilizó por primera vez el término disparidad.
La disparidad se puede denir en el eje x e y , pero para el caso de estudio sólo se va a
considerar en el eje x, expresándola como
d = xL − xR , (4.1)
donde xL y xR son las coordenadas en el eje x referidas a los sistemas de coordenadas
de la cámara izquierda y derecha respectivamente. La disparidad entonces se dene como
la diferencia en píxeles entre las proyecciones en las imágenes izquierda y derecha debidas
a un mismo punto 3D del mundo real.
La Figura 4.1 muestra un ejemplo que permite ver grácamente los valores de dispari-
dad asociados a varios puntos situados a diferentes distancias de las cámaras. Aplicando la
fórmula (4.1) se puede comprobar como el punto M1 , que genera una proyección en cada
cámara cuyos valores en el eje x son xL = 7 y xR = 3, tiene un valor de disparidad igual
a 4. Recuérdese que llegados a este punto se asume que las imágenes están recticadas,
por lo que la coordenada y de cada par de proyecciones será la misma.
Pero, ¾para qué es necesario saber la disparidad de las proyecciones?. Pues precísamente
para poder calcular la distancia a los objetos a través de la relación
37
45. CAPÍTULO 4. ESTIMACIÓN DE DISTANCIAS. 38
Figura 4.1: Esta gura explica el concepto de disparidad grácamente. Además en ella se
ve fácilmente como a mayor disparidad, menor es la distancia que separa a los objetos de
las cámaras.
fT
Z= , (4.2)
d
donde
f es la distancia focal en píxeles de las cámaras. Recuérdese que tras la recticación
de las imágenes f = fR = fL .
T es la distancia en unidades de longitud que separa los centro ópticos de las cáma-
ras.
d es la disparidad, según se ha expuesto en la expresión (4.1).
Z es la distancia a la que se encuentra el punto 3D que generó las proyecciones de
las imágenes cuya disparidad es d. Tiene las mismas unidades de longitud que T .
Esta expresión se deduce a partir de la relación de semejanza de triángulos existente en
la Figura 4.1. Por tanto sólo se cumplirá si las imágenes han sido corréctamente recticadas
y la geometría del sistema equivale al de un montaje frontal paralelo ideal.
Si se observa de nuevo la Figura 4.1 se podrá apreciar como el punto M2 , cuya disparidad
es la misma que la de M1 , se sitúa a la misma distancia de la cámara que dicho punto.
Esto es debido a que todos aquellos puntos con la misma disparidad asociada se situarán
en el mismo plano Z y por tanto serán equidistantes al plano que conforman las cámaras.
46. CAPÍTULO 4. ESTIMACIÓN DE DISTANCIAS. 39
Ahora bien, la proyección de un objeto en una imagen no consta de un único píxel, sino de
un número variable de ellos. Por tanto uno de los objetivos de este proyecto será generar
un mapa de profundidad (o de disparidad), a partir de las disparidades de los puntos
pertenecientes a una región de la imagen.
Para ello es necesario conocer previamente los pares de correspondencias en regiones de las
imágenes o en su totalidad. En otras palabras, hallar los pares de proyecciones xR ↔ xL
generadas por un mismo punto 3D, para todos los puntos de interés. Con el objetivo
de obtener automáticamente dichas correspondencias se hará uso de un algoritmo de
búsqueda de correspondencias.
4.3. Métodos de obtención de correspondencias.
Existen varios algoritmos que permiten obtener las correspondencias entre puntos de
imágenes. En general constan de las siguientes fases:
1. Pre-procesado (opcional).
Un problema frecuente al buscar correspondencias comparando tan solo las inten-
sidades entre píxeles, es que en ocasiones dieren incluso cuando pertenecen a la
proyección de un mismo objeto. Esto ocurre debido a diferencias en las caracterís-
ticas del sensor de las cámaras, como por ejemplo el brillo y el contraste. También
puede deberse al modo en el que las condiciones de iluminación varían respecto a la
posición de cada cámara.
Lo ideal sería usar las imágenes según se han tomado y utilizar medidas de seme-
janza invariantes con respecto a la intensidad de cada píxel. El problema es que este
tipo de medidas requieren mucho tiempo y recursos de cómputo. Por eso es habitual
realizar un pre-proceso previo con la idea de reducir de antemano las diferencias de
iluminación.
El modo más habitual de hacerlo es realizar la convolución de ambas imágenes con
un núcleo LoG (Laplacian of Gaussian) [8]. Esto reduce la inuencia de la ilumina-
ción, puesto que la Laplaciana es cero en áreas de intensidad constante, mientras
que vale distinto de cero cuando existen gradientes de alta intensidad. Este hecho se
puede observar en el ejemplo de las guras 4.2(a) y 4.2(b), donde se presentan unas
capturas con diferente luminosidad y el resultado de aplicar este procesado previo.
2. Medida de semejanza entre píxeles.
La medida de semejanza entre píxeles se basa en conocer la diferencia de intensida-
des. Una forma de hacerlo es obteniendo el valor absoluto de la resta de los valores
de intensidad o restando los cuadrados de dichos valores. Los algoritmos que hacen
estas comparaciones tan sencillas se llaman algoritmos píxel-a-píxel. Normálmente
estiman la semejanza de los píxeles observando el nivel de gris, aunque la precisión es
bastante limitada debido al rango de niveles en este caso (0 - 255). También pueden
47. CAPÍTULO 4. ESTIMACIÓN DE DISTANCIAS. 40
=
Figura 4.2: En la Figura a) se muestran dos capturas con diferente luminosidad, tomadas
con las cámaras izquierda y derecha del sistema de capturas. En la Figura b) se puede ver
el resultado de aplicar un pre-procesado mediante una convolución guassiana.
48. CAPÍTULO 4. ESTIMACIÓN DE DISTANCIAS. 41
=
Figura 4.3: En la Figura a) se muestra una fotografía cuyos colores son muy vivos gracias
a la luz presente cuando se tomó la imagen. Por otro lado la Figura b) muestra unos
colores muy apagados que dicultan la comparación de píxeles por niveles cromáticos.
medir niveles de color, pero esto es poco efectivo en condiciones de poca luz donde
las imágenes tienden a perder saturación. Ejemplo de ello son las guras 4.3(a) y
4.3(b), donde se puede ver la comparación entre una foto con una saturación de
color elevada y otra cuyos colores salen apagados debido a la falta de luminosidad.
En general los algoritmos píxel-a-píxel no saben discriminar píxeles si estos tienen
la misma intensidad, y tienen problemas con aquellos que han sido alterados por
ruido en la imagen. Por eso se utilizan otros métodos menos sensibles a estos proble-
mas, que en vez de mirar cada muestra de la imagen de forma individual, comparan
regiones de píxeles asignándoles una serie de costes. Esta manera de calcular costes
provoca que este tipo de algoritmos sean mucho más robustos frente el ruido de la
imagen. Sin embargo también hace que se pierda precisión en la estimación.
A la hora de asignar costes es importante tener en cuenta las oclusiones. Las oclu-
siones (píxeles que tan sólo son visibles en una de las dos imágenes) cerca de los
bordes de los objetos también dan problemas. Si se da la situación de la Figura
4.4 donde existen oclusiones, cierta cantidad de píxeles de dentro de la ventana de
búsqueda quedarán ocultos en la otra imagen. Así pues se presentarán errores en
esa zona, ya que las medidas de semejanza se harán en base a píxeles que no se en-
cuentran presentes en ambas imágenes. Por eso, los algoritmos establecen una serie
de parámetros (penalizaciones por oclusión, recompensas por correspondencia, etc.)
que ayudan a evitar problemas con los píxeles ocluidos.
3. Búsqueda de correspondencias.
Una vez establecidos los costes dentro del espacio de búsqueda en base a la seme-
janza, se procede a la búsqueda de correspondencias.
Una forma genérica de hacer esto, es buscar el intervalo de disparidad de cada punto
49. CAPÍTULO 4. ESTIMACIÓN DE DISTANCIAS. 42
Figura 4.4: Aquí se puede ver como un grupo de píxeles de la imagen izquierda quedan
ocultos en la derecha y por tanto no podrán obtenerse sus correspondencias.
50. CAPÍTULO 4. ESTIMACIÓN DE DISTANCIAS. 43
Figura 4.5: En esta gura se observa como el mapa de disparidad varía según se cambian
los costes asignados.
para valores de coste óptimos. Esta sencilla técnica es la llamada WTA (Winner-
Takes-All) [8]. Supone la ausencia de oclusiones, por lo que para regiones de la
imagen donde se de esa situación, el cálculo de disparidad será erróneo. WTA sólo
busca valores de coste óptimos, por lo que es muy sensible a los cálculos realizados
en la segunda fase de este proceso. Los costes para regiones sin texturas no permiten
obtener con precisión correspondencias debido a la semejanza entre píxeles. Además
texturas con patrones que se repiten generan ambigüedades en el cálculo. En todas
esas áreas WTA no es efectivo, por lo que posteriormente se explicarán otros algo-
ritmos más efectivos (Konolige [7] y Bircheld [2]) que mejoran todo el proceso de
búsqueda.
En cualquier caso, existen varios aspectos relativos a la geometría epipolar de la
escena que los algoritmos suelen explotar con el objetivo de mejorar la búsqueda de
correspondencias:
Restricción de suavidad: los cambios de profundidad (y por tanto de disparidad)
en las supercies de los objetos son mucho menores que en sus bordes. En la
Figura 4.5 se muestran estos cambios en los bordes de los objetos y como varían
los mapas de disparidad obtenidos en función de los costes asignados.