Universidad de Alcalá
                 Escuela Politécnica Superior
                  Ingeniero de Telecomunicación




  ...
Sistema de posicionamiento de objetos mediante
visión estéreo embarcable en vehículos inteligentes


                 Jorg...
E



Labor omnia vincit improbus.
Agradecimientos

    Primeramente quiero dar las gracias a Roberto, mi tutor de proyecto, por todo el
tiempo que ha emplea...
AGRADECIMIENTOS                                                                       EEE



A Bárbara, por el cariño que ...
Resumen
    En este proyecto se ha realizado el diseño e implementación de un sistema de visión
estéreo que permite la est...
Abstract
    This project has consisted on designing and implementing a stereo vision system that
is capable of estimating...
Índice general

Agradecimientos                                                                                           ...
ÍNDICE GENERAL                                                                                                            ...
Lista de guras

 1.1. Fases del proyecto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                   ...
LISTA DE FIGURAS                                                                                            4

  4.10. Ran...
Lista de tablas

 3.1. Algoritmos para el cálculo de la matriz Fundamental. . . . . . . . . . . . . 29
 4.1. Filtros de po...
Capítulo 1
Introducción.

1.1. Descripción del trabajo realizado.
    Este proyecto, titulado como Sistema de posicionamie...
CAPÍTULO 1.      INTRODUCCIÓN.                                                             7

1.2. Organización del docume...
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 distinto...
CAPÍTULO 2.     CALIBRACIÓN DE LA CÁMARA.                                                  9




                         ...
CAPÍTULO 2.     CALIBRACIÓN DE LA CÁMARA.                                            10




Figura 2.2: Representación geo...
CAPÍTULO 2.     CALIBRACIÓN DE LA CÁMARA.                                              11




Figura 2.4: Desplazamiento d...
CAPÍTULO 2.     CALIBRACIÓN DE LA CÁMARA.                                              12




Figura 2.5: Esquema que pres...
CAPÍTULO 2.       CALIBRACIÓN DE LA CÁMARA.                                                   13

   donde

      (xdist ,...
CAPÍTULO 2.     CALIBRACIÓN DE LA CÁMARA.                                               14




Figura 2.7: La imagen de la...
CAPÍTULO 2.    CALIBRACIÓN DE LA CÁMARA.                                               15




                 Figura 2.9:...
CAPÍTULO 2.        CALIBRACIÓN DE LA CÁMARA.                                                           16

      observarí...
CAPÍTULO 2.       CALIBRACIÓN DE LA CÁMARA.                                                           17




Figura 2.10: ...
CAPÍTULO 2.       CALIBRACIÓN DE LA CÁMARA.                                                18




Figura 2.11: En estas do...
CAPÍTULO 2.      CALIBRACIÓN DE LA CÁMARA.                                                 19

                           ...
CAPÍTULO 2.              CALIBRACIÓN DE LA CÁMARA.                                                   20

                 ...
CAPÍTULO 2.        CALIBRACIÓN DE LA CÁMARA.                                                21

     Las J imágenes del ta...
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 m...
CAPÍTULO 3.     VISIÓN ESTÉREO.                                                       23




                             ...
CAPÍTULO 3.    VISIÓN ESTÉREO.                                                       24




                           Fig...
CAPÍTULO 3.     VISIÓN ESTÉREO.                                                        25




Figura 3.4: La matriz esenci...
CAPÍTULO 3.     VISIÓN ESTÉREO.                                                       26

Sean ML y MR a la posición tridi...
CAPÍTULO 3.      VISIÓN ESTÉREO.                                                              27


                       ...
CAPÍTULO 3.      VISIÓN ESTÉREO.                                                           28


                          ...
CAPÍTULO 3.      VISIÓN ESTÉREO.                                                           29

                Nombre del ...
CAPÍTULO 3.     VISIÓN ESTÉREO.                                                        30




Figura 3.5: Montaje frontal ...
CAPÍTULO 3.      VISIÓN ESTÉREO.                                                           31




Figura 3.6: Un montaje f...
CAPÍTULO 3.      VISIÓN ESTÉREO.                                                         32




                         =...
CAPÍTULO 3.    VISIÓN ESTÉREO.                                                         33

  2. Cálculo de la matriz funda...
CAPÍTULO 3.     VISIÓN ESTÉREO.                                                         34




                           ...
CAPÍTULO 3.     VISIÓN ESTÉREO.                                                         35

Rrect es la matriz que traslad...
CAPÍTULO 3.        VISIÓN ESTÉREO.                                                                   36

      Tx es la co...
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 cali...
CAPÍTULO 4.      ESTIMACIÓN DE DISTANCIAS.                                               38




Figura 4.1: Esta gura expl...
CAPÍTULO 4.       ESTIMACIÓN DE DISTANCIAS.                                                39

Ahora bien, la proyección d...
CAPÍTULO 4.     ESTIMACIÓN DE DISTANCIAS.                                             40




                             ...
CAPÍTULO 4.      ESTIMACIÓN DE DISTANCIAS.                                               41




                       =  ...
CAPÍTULO 4.    ESTIMACIÓN DE DISTANCIAS.                                         42




Figura 4.4: Aquí se puede ver como...
CAPÍTULO 4.    ESTIMACIÓN DE DISTANCIAS.                                               43




Figura 4.5: En esta gura se ...
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes
Upcoming SlideShare
Loading in …5
×

Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes

5,999 views

Published on

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.

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,999
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
337
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes

  1. 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. 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
  3. 3. E Labor omnia vincit improbus.
  4. 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. 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. 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. 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
  8. 8. Índice general Agradecimientos EE Resumen EL Abstract L 1. Introducción. 6 1.1. Descripción del trabajo realizado. . . . . . . . . . . . . . . . . . . . . . . . 6 1.2. Organización del documento. . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2. Calibración de la cámara. 8 2.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2. Base teórica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.1. El modelo de cámara. . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.2. Parámetros intrínsecos. . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.3. Distorsiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.4. Parámetros extrínsecos. . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3. Método de calibración. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.1. Procedimiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.1.1. Cálculo de los parámetros extrínsecos e intrínsecos. . . . . 18 2.3.1.2. Cálculo de los parámetros de distorsión. . . . . . . . . . . 20 2.3.2. ¾Cuántas imágenes y esquinas detectadas son necesarias para rea- lizar la calibración?. . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3. Visión estéreo. 22 3.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2. Geometría epipolar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.3. Las matrices Fundamental y Esencial. . . . . . . . . . . . . . . . . . . . . . 25 3.3.1. La matriz Esencial. . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.3.2. La matriz Fundamental. . . . . . . . . . . . . . . . . . . . . . . . . 27 3.3.3. Cálculo de la matriz F . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.4. Caso práctico: montaje frontal paralelo. . . . . . . . . . . . . . . . . . . . . 29 3.5. Recticación de imágenes. . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 1
  9. 9. ÍNDICE GENERAL 2 3.5.1. Algoritmos de recticación. . . . . . . . . . . . . . . . . . . . . . . 31 4. Estimación de distancias. 37 4.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.2. Concepto de disparidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.3. Métodos de obtención de correspondencias. . . . . . . . . . . . . . . . . . . 39 4.3.1. Método de Konolige. . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.3.2. Método de Bircheld. . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.3.2.1. Medida de semejanza entre píxeles. . . . . . . . . . . . . . 50 4.3.2.2. Búsqueda de correspondencias. . . . . . . . . . . . . . . . 54 5. Integración del sistema. 58 5.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.2. Módulos del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.2.1. Sistema de captura de imágenes. . . . . . . . . . . . . . . . . . . . . 58 5.2.2. Calibración de las cámaras. . . . . . . . . . . . . . . . . . . . . . . 61 5.2.3. Corrección de la distorsión y recticación de imágenes. . . . . . . . 64 5.2.4. Búsqueda de correspondencias. . . . . . . . . . . . . . . . . . . . . 67 5.2.5. Estimación de distancias. . . . . . . . . . . . . . . . . . . . . . . . . 68 5.3. Manual del software. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.3.1. Requerimientos e instalación. . . . . . . . . . . . . . . . . . . . . . 69 5.3.2. Ejecución. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 5.4. Diagramas de ujo de los programas. . . . . . . . . . . . . . . . . . . . . . 72 6. Resultados. 75 6.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.2. Calibración. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.2.1. Detección de esquinas. . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.2.2. Calibración estéreo. . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6.2.3. Calidad de la calibración. . . . . . . . . . . . . . . . . . . . . . . . 77 6.2.4. Recticación de las imágenes. . . . . . . . . . . . . . . . . . . . . . 78 6.3. Medidas de distancia y estimación del error. . . . . . . . . . . . . . . . . . 78 6.3.1. Estimación del error. . . . . . . . . . . . . . . . . . . . . . . . . . . 78 6.3.2. Secuencias de vídeo. . . . . . . . . . . . . . . . . . . . . . . . . . . 82 6.4. Tiempos de ejecución. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 7. Conclusiones. 94 7.1. Conclusiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 7.2. Futuras líneas de trabajo. . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Bibliografía 97
  10. 10. Lista de guras 1.1. Fases del proyecto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1. Modelo de cámara oscura. . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2. Representación geométrica del modelo de cámara oscura. . . . . . . . . . . 10 2.3. Modelo de la cámara oscura visto desde la dirección de cada eje . . . . . . 10 2.4. Desplazamiento del punto principal. . . . . . . . . . . . . . . . . . . . . . . 11 2.5. Distorsión radial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.6. Ejemplo de distorsión radial corregida. . . . . . . . . . . . . . . . . . . . . 12 2.7. Distorsión tangencial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.8. Ejemplo de distorsión tangencial. . . . . . . . . . . . . . . . . . . . . . . . 14 2.9. Rotación de ejes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.10. Calibrando con un damero. . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.11. Detección automática de esquinas. . . . . . . . . . . . . . . . . . . . . . . . 18 2.12. Homografía entre dos planos. . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.1. Visión estéreo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2. Geometría epipolar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.3. Ambigüedades en la geometría epipolar. . . . . . . . . . . . . . . . . . . . 24 3.4. Posición relativa de una cámara respecto a la otra. . . . . . . . . . . . . . . 25 3.5. Montaje frontal paralelo ideal. . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.6. Montaje frontal paralelo ideal visto desde arriba. . . . . . . . . . . . . . . . 31 3.7. Algoritmo de Hartley. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.8. Ventajas del algoritmo de Bouguet. . . . . . . . . . . . . . . . . . . . . . . 34 4.1. Concepto de disparidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2. Pre-procesado de imágenes. . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.3. Medidas de semejanza de píxeles. . . . . . . . . . . . . . . . . . . . . . . . 41 4.4. Oclusión en la imagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.5. Restricción de suavidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.6. Algoritmo de Konolige. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.7. Normalización de imágenes. . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.8. Funcionamiento del algoritmo de Konolige. . . . . . . . . . . . . . . . . . . 47 4.9. Disparidades negativas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3
  11. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.

×