SlideShare una empresa de Scribd logo
1 de 104
Descargar para leer sin conexión
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:....................
Sistema de posicionamiento de objetos mediante
visión estéreo embarcable en vehículos inteligentes


                 Jorge Tarlea Jiménez



                  20 de julio de 2009
E



Labor omnia vincit improbus.
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
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.
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
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
Í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
Í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
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
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
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
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
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.
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
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
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)
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.
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)
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.
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:
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
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.
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.
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.
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
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:
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.
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
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 ).
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 .
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.
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
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)
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
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.
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
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.
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.
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.
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.
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.
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.).
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
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.
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
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.
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
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.
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.
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

Más contenido relacionado

La actualidad más candente

Aislación sísmica de un edificio de oficinas
Aislación sísmica de un edificio de oficinasAislación sísmica de un edificio de oficinas
Aislación sísmica de un edificio de oficinasjules_meza
 
Fisica y Quimica - Mecanica cuantica I
Fisica y Quimica - Mecanica cuantica IFisica y Quimica - Mecanica cuantica I
Fisica y Quimica - Mecanica cuantica Idegarden
 
Psu Matematica
Psu MatematicaPsu Matematica
Psu MatematicaSegundoB
 
Metaheurísticas e ingenieria del software
Metaheurísticas e  ingenieria del  softwareMetaheurísticas e  ingenieria del  software
Metaheurísticas e ingenieria del softwareElsannin17
 
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...CIMAT
 
Diseño canónico control automatico
Diseño canónico control automaticoDiseño canónico control automatico
Diseño canónico control automaticoAlejandra Mendoza
 
Serie aprender a investigar 4
Serie aprender a investigar 4Serie aprender a investigar 4
Serie aprender a investigar 4JCASTINI
 
Serie aprender a investigar 3 ICFES
Serie aprender a investigar 3 ICFESSerie aprender a investigar 3 ICFES
Serie aprender a investigar 3 ICFESJCASTINI
 
Serie aprender a investigar 5
Serie aprender a investigar 5Serie aprender a investigar 5
Serie aprender a investigar 5JCASTINI
 
Clasificación de secciones de acero estructural
Clasificación de secciones de acero estructuralClasificación de secciones de acero estructural
Clasificación de secciones de acero estructuralLuis Claudio Pérez Tato
 

La actualidad más candente (19)

Hefesto v2.1
Hefesto v2.1Hefesto v2.1
Hefesto v2.1
 
Manual Scilab
Manual ScilabManual Scilab
Manual Scilab
 
Apuntes acustica
Apuntes acusticaApuntes acustica
Apuntes acustica
 
Aislación sísmica de un edificio de oficinas
Aislación sísmica de un edificio de oficinasAislación sísmica de un edificio de oficinas
Aislación sísmica de un edificio de oficinas
 
Fisica y Quimica - Mecanica cuantica I
Fisica y Quimica - Mecanica cuantica IFisica y Quimica - Mecanica cuantica I
Fisica y Quimica - Mecanica cuantica I
 
Psu Matematica
Psu MatematicaPsu Matematica
Psu Matematica
 
Calculo diferencial
Calculo diferencialCalculo diferencial
Calculo diferencial
 
Metaheurísticas e ingenieria del software
Metaheurísticas e  ingenieria del  softwareMetaheurísticas e  ingenieria del  software
Metaheurísticas e ingenieria del software
 
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...
 
Algebra superior i reyes
Algebra superior i   reyesAlgebra superior i   reyes
Algebra superior i reyes
 
Diseño canónico control automatico
Diseño canónico control automaticoDiseño canónico control automatico
Diseño canónico control automatico
 
Serie aprender a investigar 4
Serie aprender a investigar 4Serie aprender a investigar 4
Serie aprender a investigar 4
 
Serie aprender a investigar 3 ICFES
Serie aprender a investigar 3 ICFESSerie aprender a investigar 3 ICFES
Serie aprender a investigar 3 ICFES
 
Serie aprender a investigar 5
Serie aprender a investigar 5Serie aprender a investigar 5
Serie aprender a investigar 5
 
Limitesfinal
LimitesfinalLimitesfinal
Limitesfinal
 
Comentarios De Los Principios Fundamentales
Comentarios De Los Principios FundamentalesComentarios De Los Principios Fundamentales
Comentarios De Los Principios Fundamentales
 
Librotmed
LibrotmedLibrotmed
Librotmed
 
Fundamentos de-calculo
Fundamentos de-calculoFundamentos de-calculo
Fundamentos de-calculo
 
Clasificación de secciones de acero estructural
Clasificación de secciones de acero estructuralClasificación de secciones de acero estructural
Clasificación de secciones de acero estructural
 

Destacado

Estudio de investigación sobre técnicas de calibración de cámaras
Estudio de investigación sobre técnicas de calibración de cámarasEstudio de investigación sobre técnicas de calibración de cámaras
Estudio de investigación sobre técnicas de calibración de cámarasJaime Martínez Verdú
 
Image Processing with OpenCV
Image Processing with OpenCVImage Processing with OpenCV
Image Processing with OpenCVdebayanin
 
Doyel y valentina
Doyel y valentinaDoyel y valentina
Doyel y valentinaQuinto B BN
 
Woorden met ai
Woorden met aiWoorden met ai
Woorden met aimeestertom
 
EDUCATION FINANCIÈRE EN AFRIQUE : LE CAS IVOIRIEN
EDUCATION FINANCIÈRE EN AFRIQUE : LE CAS IVOIRIENEDUCATION FINANCIÈRE EN AFRIQUE : LE CAS IVOIRIEN
EDUCATION FINANCIÈRE EN AFRIQUE : LE CAS IVOIRIENFélix Yao
 
Resñumen Web2.0
Resñumen Web2.0Resñumen Web2.0
Resñumen Web2.0jesiga
 
17 méthodes simples pour augmenter facilement la crédibilité de votre site web
17 méthodes simples pour augmenter facilement la crédibilité de votre site web17 méthodes simples pour augmenter facilement la crédibilité de votre site web
17 méthodes simples pour augmenter facilement la crédibilité de votre site webAudray Bélanger
 
Règlement jeu concours hidden cash
Règlement jeu concours hidden cashRèglement jeu concours hidden cash
Règlement jeu concours hidden cashrennesalma
 
Mémoire universitaire Bruno Duboisdenghien
Mémoire universitaire Bruno DuboisdenghienMémoire universitaire Bruno Duboisdenghien
Mémoire universitaire Bruno DuboisdenghienBruno Duboisdenghien
 
El miedo,finalizado
El miedo,finalizadoEl miedo,finalizado
El miedo,finalizadoJose Guerra
 
Practica de word
Practica de wordPractica de word
Practica de wordmargeory
 
Vers la Resilience N° 3
Vers la Resilience  N° 3Vers la Resilience  N° 3
Vers la Resilience N° 3impactjeunes
 
pattes de mouche Pyconfr 2014
pattes de mouche Pyconfr 2014pattes de mouche Pyconfr 2014
pattes de mouche Pyconfr 2014Guillaume Gay
 

Destacado (20)

Estereoscopia
EstereoscopiaEstereoscopia
Estereoscopia
 
Estudio de investigación sobre técnicas de calibración de cámaras
Estudio de investigación sobre técnicas de calibración de cámarasEstudio de investigación sobre técnicas de calibración de cámaras
Estudio de investigación sobre técnicas de calibración de cámaras
 
Image Processing with OpenCV
Image Processing with OpenCVImage Processing with OpenCV
Image Processing with OpenCV
 
#Et6-At14-Atelier juridique
#Et6-At14-Atelier juridique#Et6-At14-Atelier juridique
#Et6-At14-Atelier juridique
 
Doyel y valentina
Doyel y valentinaDoyel y valentina
Doyel y valentina
 
Woorden met ai
Woorden met aiWoorden met ai
Woorden met ai
 
Notre ville: Nehoiu
Notre ville:  NehoiuNotre ville:  Nehoiu
Notre ville: Nehoiu
 
EDUCATION FINANCIÈRE EN AFRIQUE : LE CAS IVOIRIEN
EDUCATION FINANCIÈRE EN AFRIQUE : LE CAS IVOIRIENEDUCATION FINANCIÈRE EN AFRIQUE : LE CAS IVOIRIEN
EDUCATION FINANCIÈRE EN AFRIQUE : LE CAS IVOIRIEN
 
Resñumen Web2.0
Resñumen Web2.0Resñumen Web2.0
Resñumen Web2.0
 
Tema 1
Tema  1Tema  1
Tema 1
 
17 méthodes simples pour augmenter facilement la crédibilité de votre site web
17 méthodes simples pour augmenter facilement la crédibilité de votre site web17 méthodes simples pour augmenter facilement la crédibilité de votre site web
17 méthodes simples pour augmenter facilement la crédibilité de votre site web
 
Règlement jeu concours hidden cash
Règlement jeu concours hidden cashRèglement jeu concours hidden cash
Règlement jeu concours hidden cash
 
Internetbloc
InternetblocInternetbloc
Internetbloc
 
Mémoire universitaire Bruno Duboisdenghien
Mémoire universitaire Bruno DuboisdenghienMémoire universitaire Bruno Duboisdenghien
Mémoire universitaire Bruno Duboisdenghien
 
El miedo,finalizado
El miedo,finalizadoEl miedo,finalizado
El miedo,finalizado
 
Practica de word
Practica de wordPractica de word
Practica de word
 
Casaannonces
CasaannoncesCasaannonces
Casaannonces
 
Vers la Resilience N° 3
Vers la Resilience  N° 3Vers la Resilience  N° 3
Vers la Resilience N° 3
 
pattes de mouche Pyconfr 2014
pattes de mouche Pyconfr 2014pattes de mouche Pyconfr 2014
pattes de mouche Pyconfr 2014
 
Creació de l’associated press
Creació de l’associated pressCreació de l’associated press
Creació de l’associated press
 

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

Tesis Licenciatura
Tesis LicenciaturaTesis Licenciatura
Tesis LicenciaturaCIMAT
 
Introducción a la programación en c
Introducción a la programación en cIntroducción a la programación en c
Introducción a la programación en cvictdiazm
 
Localización y decodificación de códigos de barras en imágenes digitales
Localización y decodificación de códigos de barras en imágenes digitalesLocalización y decodificación de códigos de barras en imágenes digitales
Localización y decodificación de códigos de barras en imágenes digitalesHenry Quilla
 
Calculo diferencial integral_func_una_var (1)
Calculo diferencial integral_func_una_var (1)Calculo diferencial integral_func_una_var (1)
Calculo diferencial integral_func_una_var (1)Roberto Soto
 
Métodos operativos del calculo diferencial
Métodos operativos del calculo diferencial Métodos operativos del calculo diferencial
Métodos operativos del calculo diferencial Joe Arroyo Suárez
 
Tesis Gregory Pekynov Bustamante, Ingenieria Electronica, La Paz Bolivia
Tesis Gregory Pekynov Bustamante, Ingenieria Electronica, La Paz BoliviaTesis Gregory Pekynov Bustamante, Ingenieria Electronica, La Paz Bolivia
Tesis Gregory Pekynov Bustamante, Ingenieria Electronica, La Paz BoliviaSUPSI
 
Recoleccion de la información
Recoleccion de la informaciónRecoleccion de la información
Recoleccion de la informacióndesarrollowebjp
 
Manual de programacion_con_robots_para_la_escuela
Manual de programacion_con_robots_para_la_escuelaManual de programacion_con_robots_para_la_escuela
Manual de programacion_con_robots_para_la_escuelaAngel De las Heras
 
Apuntes electrónica digital
Apuntes electrónica digitalApuntes electrónica digital
Apuntes electrónica digitaljose66ma
 
Apuntes digital
Apuntes digitalApuntes digital
Apuntes digitalchichiga
 
Electronicadigital
ElectronicadigitalElectronicadigital
Electronicadigitaljvlarrosa
 
Apuntes electronica digital
Apuntes electronica digitalApuntes electronica digital
Apuntes electronica digitalartorius1968
 

Similar a Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes (20)

Tesis Licenciatura
Tesis LicenciaturaTesis Licenciatura
Tesis Licenciatura
 
Tfg g3750
Tfg g3750Tfg g3750
Tfg g3750
 
Introducción a la programación en c
Introducción a la programación en cIntroducción a la programación en c
Introducción a la programación en c
 
Introducción a la programación en C
Introducción a la programación en CIntroducción a la programación en C
Introducción a la programación en C
 
Garbarino
GarbarinoGarbarino
Garbarino
 
Guia_Analisis_Exp.pdf
Guia_Analisis_Exp.pdfGuia_Analisis_Exp.pdf
Guia_Analisis_Exp.pdf
 
Localización y decodificación de códigos de barras en imágenes digitales
Localización y decodificación de códigos de barras en imágenes digitalesLocalización y decodificación de códigos de barras en imágenes digitales
Localización y decodificación de códigos de barras en imágenes digitales
 
Manual excitador-vaca
Manual excitador-vacaManual excitador-vaca
Manual excitador-vaca
 
Calculo diferencial integral_func_una_var (1)
Calculo diferencial integral_func_una_var (1)Calculo diferencial integral_func_una_var (1)
Calculo diferencial integral_func_una_var (1)
 
Tesis análisis estructural.
Tesis análisis estructural.Tesis análisis estructural.
Tesis análisis estructural.
 
Tesis python ing. civil
Tesis python ing. civilTesis python ing. civil
Tesis python ing. civil
 
Métodos operativos del calculo diferencial
Métodos operativos del calculo diferencial Métodos operativos del calculo diferencial
Métodos operativos del calculo diferencial
 
Tesis Gregory Pekynov Bustamante, Ingenieria Electronica, La Paz Bolivia
Tesis Gregory Pekynov Bustamante, Ingenieria Electronica, La Paz BoliviaTesis Gregory Pekynov Bustamante, Ingenieria Electronica, La Paz Bolivia
Tesis Gregory Pekynov Bustamante, Ingenieria Electronica, La Paz Bolivia
 
Recoleccion de la información
Recoleccion de la informaciónRecoleccion de la información
Recoleccion de la información
 
Manual de programacion_con_robots_para_la_escuela
Manual de programacion_con_robots_para_la_escuelaManual de programacion_con_robots_para_la_escuela
Manual de programacion_con_robots_para_la_escuela
 
Manual de programacion_con_robots_para_la_escuela
Manual de programacion_con_robots_para_la_escuelaManual de programacion_con_robots_para_la_escuela
Manual de programacion_con_robots_para_la_escuela
 
Apuntes electrónica digital
Apuntes electrónica digitalApuntes electrónica digital
Apuntes electrónica digital
 
Apuntes digital
Apuntes digitalApuntes digital
Apuntes digital
 
Electronicadigital
ElectronicadigitalElectronicadigital
Electronicadigital
 
Apuntes electronica digital
Apuntes electronica digitalApuntes electronica digital
Apuntes electronica digital
 

Último

PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdfGabrieldeJesusLopezG
 
programa PLAN ANUAL TUTORIA 3° SEC-2024.docx
programa PLAN ANUAL TUTORIA 3° SEC-2024.docxprograma PLAN ANUAL TUTORIA 3° SEC-2024.docx
programa PLAN ANUAL TUTORIA 3° SEC-2024.docxCram Monzon
 
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)jlorentemartos
 
Programa sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfPrograma sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfHannyDenissePinedaOr
 
Actividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 EducacionActividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 Educacionviviantorres91
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docxMagalyDacostaPea
 
Presentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxPresentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxRosabel UA
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdflizcortes48
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxNataliaGonzalez619348
 
Descripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraDescripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraJose Sanchez
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajeKattyMoran3
 
5º SOY LECTOR PART1- MD EDUCATIVO.pdfde
5º SOY LECTOR PART1- MD  EDUCATIVO.pdfde5º SOY LECTOR PART1- MD  EDUCATIVO.pdfde
5º SOY LECTOR PART1- MD EDUCATIVO.pdfdeBelnRosales2
 
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxTALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxMartaChaparro1
 

Último (20)

PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
 
Unidad 2 | Teorías de la Comunicación | MCDIU
Unidad 2 | Teorías de la Comunicación | MCDIUUnidad 2 | Teorías de la Comunicación | MCDIU
Unidad 2 | Teorías de la Comunicación | MCDIU
 
programa PLAN ANUAL TUTORIA 3° SEC-2024.docx
programa PLAN ANUAL TUTORIA 3° SEC-2024.docxprograma PLAN ANUAL TUTORIA 3° SEC-2024.docx
programa PLAN ANUAL TUTORIA 3° SEC-2024.docx
 
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
 
¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx
 
Acuerdo segundo periodo - Grado Septimo.pptx
Acuerdo segundo periodo - Grado Septimo.pptxAcuerdo segundo periodo - Grado Septimo.pptx
Acuerdo segundo periodo - Grado Septimo.pptx
 
Programa sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfPrograma sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdf
 
Actividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 EducacionActividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 Educacion
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
 
Acuerdo segundo periodo - Grado Sexto.pptx
Acuerdo segundo periodo - Grado Sexto.pptxAcuerdo segundo periodo - Grado Sexto.pptx
Acuerdo segundo periodo - Grado Sexto.pptx
 
Presentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxPresentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptx
 
Sesión ¿Amor o egoísmo? Esa es la cuestión
Sesión  ¿Amor o egoísmo? Esa es la cuestiónSesión  ¿Amor o egoísmo? Esa es la cuestión
Sesión ¿Amor o egoísmo? Esa es la cuestión
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdf
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
 
Descripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraDescripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldadura
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguaje
 
5º SOY LECTOR PART1- MD EDUCATIVO.pdfde
5º SOY LECTOR PART1- MD  EDUCATIVO.pdfde5º SOY LECTOR PART1- MD  EDUCATIVO.pdfde
5º SOY LECTOR PART1- MD EDUCATIVO.pdfde
 
Acuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptxAcuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptx
 
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxTALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
 

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