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

104

description

This project has consisted on designing and implementing a stereo vision system that is capable of estimating the distances to which some objects of interest are located. The images acquisition system consists of two rewire cameras serial connected. The software is implemented in C/C++ programming language, together with the OpenCV computer vision libraries. It is formed by two applications: the rest of them carries out the stereo calibration and the other one corrects the images, generates the disparity maps and calculates the distances.

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

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

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

Page 2: 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

Jorge Tarlea Jiménez

20 de julio de 2009

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

i

Labor omnia vincit improbus.

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

Agradecimientos

Primeramente quiero dar las gracias a Roberto, mi tutor de proyecto, por todo eltiempo que ha empleado en dirigir este trabajo, ayudarme siempre que me ha hecho faltae incluso animarme a seguir cuando los resultados no eran lo esperado. Al verle todosestos meses he aprendido que el tener ilusión y ganas por lo que uno está haciendo es tanimportante 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, queseguro 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ñadoen este tiempo.Los momentos difíciles que se presentaron en estos años de carrera quedaron atrás graciasal 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 cuantohan emprendido, se ha mostrado ante mis ojos como un modelo a seguir. Quiero darles lasgracias a mi padre y a mi madre por respetar la decisión que tome en su día de estudiaresta carrera. No sólo por no retirar ese apoyo cuando las cosas me fueron mal, si no porayudarme a centrarme y por indicarme cuál era el camino correcto. A mi hermana quieroagradecerle el cariño que me daba cuando me veía decaído, y sobre todo la fuerza que meinfundí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 mejorque nadie mi trabajo y dedicación. Ella ha con�ado en todas mis decisiones y siempre haestado a mi lado. Ha tenido más fe en mi de la que yo mismo he mostrado y eso nuncapodré agradecérselo lo su�ciente.A David, por todos esos días de estudio en los que hemos luchado juntos, y por todosaquellos 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 delgrupo de amigos como si de él mismo se tratara. Siempre ha sido el nexo que nos hamantenido unidos.A Pablo, por hacerme ver que muchas de las cosas de la vida por las que nos quejamosno son tan importantes. Su espíritu de lucha en la vida y su constancia en el día a díahan sido un ejemplo para mi.

ii

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

AGRADECIMIENTOS iii

A Bárbara, por el cariño que me ha regalado desde que la conozco, por su amistad, yporque 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 nosconocimos en el primer día de colegio.A Javi, porque es una gran persona en la que se puede con�ar, y porque ha sido micompañero en la lucha por superar las di�cultades en la Universidad. Mi más sincerodeseo 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. Esuna 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 esimpedimento para conservar una excelente amistad.A Tamara, una grandísima amiga que me ha hecho ver que si uno se lo propone puedeconseguir todo lo que se proponga.A Manolo, por ser ese amigo al que me une toda una vida y porque sé que, aunque nosveamos 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 noles pude dedicar el tiempo que se merecían, limitándose a restarle importancia con unasonrisa.A todos los miembros de mi familia que no cito aquí, pero a los que también les atribuyogran parte del apoyo recibido, gracias.Gracias también a todos aquellos que ya no están y que siempre he tenido presente a lolargo 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 queme caía.

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

Resumen

En este proyecto se ha realizado el diseño e implementación de un sistema de visiónestéreo que permite la estimación de las distancias a las que se encuentran objetos deinterés dentro de su campo de visión.El sistema de adquisición de imágenes se ha realizado utilizando dos cámaras �rewireconectadas en serie. El software implementado en C/C++ utiliza las librerías de visiónOpenCV. Se compone de dos aplicaciones: una de ellas permite hacer la calibración estéreode las cámaras y la otra corrige las imágenes, genera los mapas de disparidad y calculalas distancias a los objetos.

iv

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

Abstract

This project has consisted on designing and implementing a stereo vision system thatis capable of estimating the distances to which some objects of interest are located.The images acquisition system consists of two �rewire cameras serial connected. Thesoftware is implemented in C/C++ programming language, together with the OpenCVcomputer vision libraries. It is formed by two applications: the �rst of them carries outthe stereo calibration and the other one corrects the images, generates the disparity mapsand calculates the distances.

v

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

Índice general

Agradecimientos ii

Resumen iv

Abstract v

1. Introducción. 61.1. Descripción del trabajo realizado. . . . . . . . . . . . . . . . . . . . . . . . 61.2. Organización del documento. . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2. Calibración de la cámara. 82.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2. Base teórica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2.1. El modelo de cámara. . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.2. Parámetros intrínsecos. . . . . . . . . . . . . . . . . . . . . . . . . . 102.2.3. Distorsiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.2.4. Parámetros extrínsecos. . . . . . . . . . . . . . . . . . . . . . . . . 14

2.3. Método de calibración. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.3.1. Procedimiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.3.1.1. Cálculo de los parámetros extrínsecos e intrínsecos. . . . . 182.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. 223.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.2. Geometría epipolar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.3. Las matrices Fundamental y Esencial. . . . . . . . . . . . . . . . . . . . . . 25

3.3.1. La matriz Esencial. . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.3.2. La matriz Fundamental. . . . . . . . . . . . . . . . . . . . . . . . . 273.3.3. Cálculo de la matriz F . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.4. Caso práctico: montaje frontal paralelo. . . . . . . . . . . . . . . . . . . . . 293.5. Recti�cación de imágenes. . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

1

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

ÍNDICE GENERAL 2

3.5.1. Algoritmos de recti�cación. . . . . . . . . . . . . . . . . . . . . . . 31

4. Estimación de distancias. 374.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.2. Concepto de disparidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.3. Métodos de obtención de correspondencias. . . . . . . . . . . . . . . . . . . 39

4.3.1. Método de Konolige. . . . . . . . . . . . . . . . . . . . . . . . . . . 454.3.2. Método de Birch�eld. . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4.3.2.1. Medida de semejanza entre píxeles. . . . . . . . . . . . . . 504.3.2.2. Búsqueda de correspondencias. . . . . . . . . . . . . . . . 54

5. Integración del sistema. 585.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585.2. Módulos del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5.2.1. Sistema de captura de imágenes. . . . . . . . . . . . . . . . . . . . . 585.2.2. Calibración de las cámaras. . . . . . . . . . . . . . . . . . . . . . . 615.2.3. Corrección de la distorsión y recti�cación de imágenes. . . . . . . . 645.2.4. Búsqueda de correspondencias. . . . . . . . . . . . . . . . . . . . . 675.2.5. Estimación de distancias. . . . . . . . . . . . . . . . . . . . . . . . . 68

5.3. Manual del software. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695.3.1. Requerimientos e instalación. . . . . . . . . . . . . . . . . . . . . . 695.3.2. Ejecución. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

5.4. Diagramas de �ujo de los programas. . . . . . . . . . . . . . . . . . . . . . 72

6. Resultados. 756.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756.2. Calibración. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

6.2.1. Detección de esquinas. . . . . . . . . . . . . . . . . . . . . . . . . . 756.2.2. Calibración estéreo. . . . . . . . . . . . . . . . . . . . . . . . . . . . 766.2.3. Calidad de la calibración. . . . . . . . . . . . . . . . . . . . . . . . 776.2.4. Recti�cación de las imágenes. . . . . . . . . . . . . . . . . . . . . . 78

6.3. Medidas de distancia y estimación del error. . . . . . . . . . . . . . . . . . 786.3.1. Estimación del error. . . . . . . . . . . . . . . . . . . . . . . . . . . 786.3.2. Secuencias de vídeo. . . . . . . . . . . . . . . . . . . . . . . . . . . 82

6.4. Tiempos de ejecución. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

7. Conclusiones. 947.1. Conclusiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947.2. Futuras líneas de trabajo. . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

Bibliografía 97

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

Lista de �guras

1.1. Fases del proyecto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.1. Modelo de cámara oscura. . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2. Representación geométrica del modelo de cámara oscura. . . . . . . . . . . 102.3. Modelo de la cámara oscura visto desde la dirección de cada eje . . . . . . 102.4. Desplazamiento del punto principal. . . . . . . . . . . . . . . . . . . . . . . 112.5. Distorsión radial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.6. Ejemplo de distorsión radial corregida. . . . . . . . . . . . . . . . . . . . . 122.7. Distorsión tangencial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.8. Ejemplo de distorsión tangencial. . . . . . . . . . . . . . . . . . . . . . . . 142.9. Rotación de ejes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.10. Calibrando con un damero. . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.11. Detección automática de esquinas. . . . . . . . . . . . . . . . . . . . . . . . 182.12. Homografía entre dos planos. . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.1. Visión estéreo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.2. Geometría epipolar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.3. Ambigüedades en la geometría epipolar. . . . . . . . . . . . . . . . . . . . 243.4. Posición relativa de una cámara respecto a la otra. . . . . . . . . . . . . . . 253.5. Montaje frontal paralelo ideal. . . . . . . . . . . . . . . . . . . . . . . . . . 303.6. Montaje frontal paralelo ideal visto desde arriba. . . . . . . . . . . . . . . . 313.7. Algoritmo de Hartley. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.8. Ventajas del algoritmo de Bouguet. . . . . . . . . . . . . . . . . . . . . . . 34

4.1. Concepto de disparidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.2. Pre-procesado de imágenes. . . . . . . . . . . . . . . . . . . . . . . . . . . 404.3. Medidas de semejanza de píxeles. . . . . . . . . . . . . . . . . . . . . . . . 414.4. Oclusión en la imagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.5. Restricción de suavidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.6. Algoritmo de Konolige. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.7. Normalización de imágenes. . . . . . . . . . . . . . . . . . . . . . . . . . . 464.8. Funcionamiento del algoritmo de Konolige. . . . . . . . . . . . . . . . . . . 474.9. Disparidades negativas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

3

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

LISTA DE FIGURAS 4

4.10. Rangos de disparidades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494.11. Algoritmo de Birch�eld. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.12. Secuencia de correspondencias. . . . . . . . . . . . . . . . . . . . . . . . . . 514.13. Disimilitud de píxeles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534.14. Búsqueda de correspondencias con el algoritmo de Birch�eld. . . . . . . . . 554.15. Rejilla de búsqueda reestructurada. . . . . . . . . . . . . . . . . . . . . . . 56

5.1. Diagrama de bloques del sistema completo. . . . . . . . . . . . . . . . . . . 595.2. Sistema de captura de imágenes. . . . . . . . . . . . . . . . . . . . . . . . . 605.3. Fotografía del sistema de captura. . . . . . . . . . . . . . . . . . . . . . . . 615.4. Calibración de las cámaras. . . . . . . . . . . . . . . . . . . . . . . . . . . 615.5. Detección de esquinas del damero. . . . . . . . . . . . . . . . . . . . . . . . 635.6. Corrección de la distorsión y recti�cación de imágenes. . . . . . . . . . . . 665.7. Mapa de disparidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675.8. Estimación de distancias a partir del mapa de disparidad. . . . . . . . . . . 695.9. Ayuda del programa de calibración de las cámaras. . . . . . . . . . . . . . 715.10. Ayuda del programa de estimación de distancias. . . . . . . . . . . . . . . . 725.11. Diagrama de �ujo del programa de calibración. . . . . . . . . . . . . . . . . 735.12. Diagrama de �ujo del programa de estimación de distancias. . . . . . . . . 74

6.1. Efectividad del algoritmo de detección de esquinas. . . . . . . . . . . . . . 766.2. Precisión en la recti�cación de imágenes. . . . . . . . . . . . . . . . . . . . 796.3. Recti�cación errónea debida a una solución extraña. . . . . . . . . . . . . . 806.4. Error calculando la media de las disparidades. . . . . . . . . . . . . . . . . 816.5. Error calculando el histograma de las disparidades. . . . . . . . . . . . . . 816.6. Comparación del error cometido usando la media y el histograma de dis-

paridades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826.7. Comparación de las medidas frente a cambios de iluminación. . . . . . . . 836.8. Grabación de una persona alejándose. . . . . . . . . . . . . . . . . . . . . . 856.9. Grabación de exteriores desde un vehículo en movimiento. . . . . . . . . . 866.10. Grabación con poca luz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876.11. Tiempo de ejecución de los algoritmos de búsqueda de correspondencias. . 906.12. Capacidad de proceso de los algoritmos de búsqueda de correspondencias. . 916.13. ¾Por qué Birch�eld?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 926.14. Porcentajes de tiempos en la calibración. . . . . . . . . . . . . . . . . . . . 926.15. Porcentaje de tiempo empleado por Konolige en comparación con la detección. 936.16. Porcentaje de tiempo empleado por Birch�eld en comparación con la de-

tección. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

7.1. Sistema integrado de visión estéreo. . . . . . . . . . . . . . . . . . . . . . . 95

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

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. . . . . . . . . . . . . . . . . 886.2. Tiempos de ejecución en la fase de estimación de distancias. . . . . . . . . 92

5

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

Capítulo 1

Introducción.

1.1. Descripción del trabajo realizado.

Este proyecto, titulado como "Sistema de posicionamiento de objetos mediante visiónesté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ónomaobjetos (ej.: automóviles, personas, etc.) que se encuentren presentes en el entorno querodea el vehículo en el cuál se encuentra empotrado. Con este proyecto se ha tratado deobtener un sistema que aune lo que se ha venido haciendo estos años sobre mapas deprofundidad [8], [5], con algunas características presentes en los trabajos sobre estimaciónde distancias mediante estéreo visión [1].Primeramente se ha realizado es un montaje con dos cámaras de forma que constituyan elsistema de adquisición de imágenes sobre el que trabajar. Posteriormente se ha procedidoa implementar el proceso mostrado en la Figura 1.1.

Calibraciónde las cámaras

Rectificaciónde

las imágenes

Búsqueda de correspondencias

Triangulación delos objetos

Figura 1.1: Estas son las fases principales de las que consta el proceso llevado a cabo enel proyecto.

Finalmente se han realizado una serie de grabaciones, tanto en interiores como enexteriores, 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 obtenermapas de disparidad y distancias. Tras analizar los resultados obtenidos, se han corregidofallos y se ha ido ajustando todo el sistema hasta lograr los objetivos planteados en unprincipio.

6

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

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 lode�nen.El tercer capítulo se dedica a explicar detalladamente la teoría epipolar. Esta permitetriangular 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 recti�caciónde 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 mapasde profundidad generados a partir de las disparidades entre píxeles y las distancias realesa los objetos.El capítulo 5 da una visión más general del proceso completo, presentando el conjunto detodos los módulos que componen el sistema y como interactúan entre sí. Por otro ladoprofundiza acerca de la implementación de cada uno de ellos, resaltando aquellos aspectosque han sido incluidos en la versión de�nitiva 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ónde 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 todolo anterior y se trata de dar una idea de lo que podrían ser las futuras líneas de trabajo.

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

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 involucradosen la calibración de una cámara. Así mismo se presenta un método, mediante el cualse podrá obtener el modelo que de�ne el comportamiento del dispositivo utilizado paraobtener imágenes.

2.2. Base teórica.

La calibración es un proceso que permite obtener una serie de parámetros que de�nenla forma en la que una cámara interactúa con el mundo, el modo en el que se ve afectadopor las imperfecciones presentes en el hardware (lentes, sensor, etc.), y cómo corregirdichas alteraciones. A continuación se explicará la base teórica sobre la que se asienta esteproceso.

2.2.1. El modelo de cámara.

Existen varios modelos que de�nen la geometría que indica cómo un objeto del mundoreal se proyecta sobre un plano (Ej.: sensor CCD), convirtiéndose en una imagen 2D. Elmá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 quepermite a los rayos de luz penetrar en su interior a través de un pequeño agujero e incidirsobre una super�cie fotosensible. Por tanto, un objeto situado a una distancia Z respectoa la pared agujereada, se ve proyectado de forma invertida en el plano imagen, situado auna distancia f de dicha abertura.

El tamaño de este agujero tan solo permite el paso de una muy pequeña cantidad deluz, es por ello que el uso de lentes es necesario en la práctica. Esto permite un incrementodel número de rayos que la atraviesan, de manera que se facilita la generación de la imagen

8

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

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 losrayos llegan al plano imagen, pero el modelo de cámara oscura sigue considerándose comová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 modelode 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 coordenadasdel 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 formala imagen sin inversión alguna (al contrario que en el caso de la Figura 2.1, dondese 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 habitualque 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 Figura2.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 detriángulos, se puede a�rmar lo siguiente,

y

f=

Y

Z

x

f=

X

Z(2.1)

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

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.

(a) (b)

Figura 2.3: Modelo de cámara oscura visto desde la dirección del eje X y eje Y respecti-vamente

(X, Y, Z) ⇒ (fX

Z,fY

Z) (2.2)

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 w PM , (2.3)

donde P , es la matriz de proyección, que será descrita en detalle a lo largo delapartado 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 coordenadasde un punto 3D del mundo real en píxeles de una imagen. Se construye a partir de unamatriz K y un vector de valores nulos:

P = [K|0] , (2.4)

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

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

Figura 2.4: Desplazamiento del punto principal respecto al centro de coordenadas de laimagen.

K =

fx s cx

0 fy cy

0 0 1

, (2.5)

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ó enla 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 paredesde los píxeles del sensor. Es inversamente proporcional a la tangente del ánguloque forman los ejes X e Y , por lo que s tendrá un valor nulo si los píxeles sonrectangulares. 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 focalf considerada en las ecuaciones (2.1) y (2.2), según

fx = fSx , (2.6)

fy = fSy , (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 deleje x y del eje y respectívamente.

Como es obvio, si el sensor tiene el mismo número de píxeles por unidad de longituden todas sus dimensiones, las dos focales fx y fy tendrán el mismo valor.

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

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 lasdistorsiones 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 quelos rayos más alejados del centro óptico, se curven mucho más que aquellos que incidendiré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 lasimágenes, tal y como puede apreciarse en el ejemplo de la Figura 2.6. Es importanteremarcar que también crece según disminuye la longitud focal de la lente usada o cuandose 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 quedancomo sigue,

xdist = L(r) · x ydist = L(r) · y , (2.8)

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

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.

(x, y) es la posición de un píxel en la imagen corregida.

r es la distancia desde el centro que se expresa como√

x2 + y2.

L(r) es el factor de distorsión y es igual a

L(r) = (1 + k1r2 + k2r

4 + k3r6 + ...) , (2.9)

donde

� r2 =√

(xdist − xc)2 + (ydist − yc)2.

� ki son los coe�cientes 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 coe�cientes k1 y k2. Por el contrario,para aquellas lentes que introduzcan mucha distorsión (Ej.: lentes baratas, ojos de pez 1

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 conimágenes es la distorsión tangencial. En este caso las deformaciones producidas se debena 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éctamentepegado 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 seproducirá 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 siguientesecuaciones [9]

x = xdist + [2p1ydist + p2(r2 + 2x2

dist)] , (2.12)

y = ydist + [2p2xdist + p1(r2 + 2y2

dist)] . (2.13)

1Lente cuyo ángulo de visión es muy grande.

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

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. Porel contrario, la de la derecha no provocaría distorsión tangencial, ya que está colocadocorré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 decoordenadas del mundo. Esto era así a efectos del cálculo de parámetros intrínsecos, conlo 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ámarase mueva o se gire, para captar adecuadamente la escena.Por ello, para poder modelar el sistema con independencia de que su posición haya sidoalterada o de que un objeto se pueda referenciar respecto al origen de coordenadas de lacámara, es necesario modi�car la ecuación (2.3) introduciendo una nueva matriz W :

m w 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 objetorespecto de ella). Tendrá una forma distinta dependiendo de respecto a que eje (X,Y, Z) se haga la rotación:

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

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

Figura 2.9: Rotación de la cámara respecto al eje Z.

Rx(Ψ) =

1 0 0

0 cosΨ sinΨ

0 −sinΨ cosΨ

(2.16)

Ry(ϕ) =

cosϕ 0 −sinϕ

0 1 0

sinϕ 0 cosϕ

(2.17)

Rz(θ) =

cosθ sinθ 0

−sinθ cosθ 0

0 0 1

(2.18)

Si el giro se realiza respecto al eje Z, tal y como se dibuja en la Figura 2.9, lasnuevas coordenadas quedarán de la siguiente forma:

X ′

Y ′

Z ′

=

cosθ sinθ 0

−sinθ cosθ 0

0 0 1

X

Y

Z

X ′ = Xcosθ + Y sinθ

Y ′ = −Xsinθ + Y cosθ

Z ′ = Z

(2.19)

Si el giro se hiciera respecto a los otros dos ejes (X o Y ), la operación se haría deforma análoga, utilizando para ello la pertinente matriz de rotación R. Además se

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

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

observaría que la componente correspondiente a dicho eje de rotación tampoco severí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 respectoa ella. De esta forma Mfinal = Minicial − t.

Si se tiene en cuenta lo siguiente:

1. Una rotación en tres dimensiones se de�ne con la variación de tres ángulos (Ψ, Φ, θ).

2. Una translación en el espacio se especi�ca 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 hayagenerado una misma cámara, si se utilizar la expresión (2.14). Lo que se verá en el siguienteapartado, es el método que se ha seguido en este proyecto para la obtención de dichosparámetros.

2.3. Método de calibración.

Son varias las técnicas que han sido desarrolladas para llevar a cabo la calibración deuna 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 posterioresmejoras [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 permitidosu programación sin mucha di�cultad.

Sencillez de ejecución: tan sólo es necesario realizar varias capturas de un objetoconocido, 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 comolos 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 eluso de un tablero de ajedrez2 que se ha imprimido sobre una super�cie plana. Este objeto

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

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

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 haido 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 e�cázmente e identi�car regiones de forma precisa.A continuación se describirán los pasos que se han llevado a cabo para el cálculo de losparámetros intrínsecos y extrínsecos:

1. Realización de una serie de capturas como las de la Figura 2.10. Se ha de procurarque 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ón3, y así se logrará una mayor precisión a la hora de calcular losparámetros de distorsión y corregir la imagen.

2. Detección automática de la posición de las esquinas interiores del damero. Para elloel algoritmo necesitará:

Las imágenes donde se muestra el tablero que convertirá a blanco y negro antesde procesarlas.

El número de esquinas interiores que contiene el objeto de calibración. Se leindicará cuántas hay en cada lado de forma independiente.

Si tras el proceso de búsqueda se detectaran todas4 las esquinas interiores de formasatisfactoria, 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 unahomografía entre puntos.

4. Cálculo de los parámetros de distorsión que permitirán corregir posibles aberracionesde las imagen.

Los dos últimos pasos se explicarán detalladamente a lo largo de los siguientes dosapartados.

3En el caso de la distorsión tangencial, éstas serían los bordes de la imagen.4Será 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.

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

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

Figura 2.12: En este grá�co se puede observar la homografía existente para cualquierpunto 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ónde homografía5 entre los puntos detectados del tablero y los puntos de la imagen formadaen 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 ⇔ PW , donde alpha noes más que un mero factor de escala.

Teniendo en cuenta las ecuaciones (2.5) y (2.15), y expresando los puntos origen ydestino en coordenadas homogéneas6

5En este caso una homografía tan sólo conlleva un cambio de plano.6Será necesario para describir el espacio proyectivo en el que se está trabajando.

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

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

m =

x

y

1

= αKWM = α

fx s cx

0 fy cy

0 0 1

(r1 r2 r3 t

)

X

Y

Z

1

, (2.21)

donde r1, r2 y r3 son las columnas de la matriz de rotación R, t el vector de translacióny 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, esposible simpli�car la ecuación anterior estableciendo que la coordenada Z sea nula. Estoprovoca que el término r3 no afecte en modo alguno a la expresión, la cual queda reducidaa

x

y

1

= αK(r1 r2 t

)

X

Y

0

1

. (2.22)

Por todo lo anterior, se concluye que la homografía H existente entre los puntos deldamero 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 ylo anteriormente expuesto [9], se derivan el siguiente par de restricciones

h1T K−T K−1h2 = 0 , (2.25)

h1T K−T K−1h2 = 0 . (2.26)

Se de�ne por simplicidad de notación

B = K−T K−1 =

B11 B12 B13

B12 B22 B23

B13 B23 B33

. (2.27)

Finalmente se muestran las expresiones [9] que permitirán al algoritmo de calibracióncalcular los parámetros intrínsecos

fx =

√λ

B11

, (2.28)

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

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

fy =

√λB11

B11B22 − B212

, (2.29)

cx =scy

f− B13

f 2

λ, (2.30)

cy =B12B13 − B11B23

B11B22 − B212

, (2.31)

λ = α−1 = B33 −B2

13 + cy(B12B13 − B11B23)

B11

, (2.32)

s = −B12f2xfy

λ. (2.33)

Por otra parte, retomando las ecuaciones que de�nen la homografía y siendo conocidoslos parámetros intrínsecos, se pueden obtener fácilmente los parámetros extrínsecos:

r1 = λK−1h1 , (2.34)

r2 = λK−1h2 , (2.35)

r3 = r1 × r2 , (2.36)

t = λK−1h3 . (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íandistorsiones y habiendo tenido en cuenta las relaciones (2.10), (2.12) y (2.13)

(xsindist

ysindist

)= (1+k1r

2+k2r4+k3r

6)

(xdist

ydist

)+

(2p1xdistydist + p2(r

2 + 2x2sindist)

2p2xdistydist + p1(r2 + 2y2

sindist)

). (2.38)

Aplicando un algoritmo de minimización no lineal se podrán obtener los parámetrosde distorsión. Inicializándolos a cero, se procederá al calculo de nuevos valores de formaiterativa. El algoritmo �nalizará cuando los parámetros calculados permitan obtener unaimagen 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ánlas dimensiones adecuadas del objeto de calibración.Considerando que el damero tiene N esquinas interiores y que se tienen J imágenes:

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

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

Las J imágenes del tablero de ajedrez imponen un total de 2NJ restricciones7, unapor cada esquina detectada.

5 son los parámetros intrínsecos y 6J los parámetros extrínsecos a calcular duranteel proceso.

Si se resuelve la ecuación 2NJ ≥ 6J + 5, se obtiene que para J = 2 tan solo8 senecesitarían N = 5 esquinas.En la práctica, se ha comprobado que es necesario un número superior a 2 imágenes paraobtener 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), sibien en las últimas pruebas se utilizaron muchas más.

7Se multiplica por 2 debido a que cada punto detectado tiene dos componentes x e y.8Al menos son necesarias dos imágenes para establecer la homografía del punto 2.3.1.1.

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

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 elque 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ómenomediante un sistema de captura de imágenes, y cómo se han utilizado los resultadosobtenidos para triangular objetos. Además se abordará la resolución de los problemas quepuedan 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 delmundo real se transforma en un punto 2D perteneciente a imagen. Se puede establecerla forma en la que las coordenadas físicas de la localización de un punto en el espacio setransforman 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 partirde una sola imagen de la escena no se puede averiguar sin ambigüedad a que puntotridimensional corresponde cada píxel.Así pues se hace necesario emplear dos cámaras que permitan capturar simultáneamenteimágenes de una misma escena según se muestra en la Figura 3.1, y así poder generarun mapa de profundidad que permita calcular con certeza las distancias a los objetos deinterés.

Esto último es posible gracias a la geometría epipolar, geometría básica usada en devisión estéreo, que proporciona las herramientas para relacionar dos cámaras entre sí y elmundo 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 yderecha, generando los puntos mL y mR respectívamente.

22

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

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 eLmL y eRmR son las llamadas líneas epipolares LL y LR.

eL y eR son los epipolos. El epipolo se de�ne como la proyección del centro ópticode la cámara derecha sobre el plano de proyección izquierdo (y viceversa). Ademástoda 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 elplano epipolar Ψ . Se de�ne mediante

Ψ = PLT LL = PR

T LR , (3.1)

expresión que es función de las líneas epipolares LL y LR, y de las matrices deproyección PL y PR de las cámaras.

Observando la cámara izquierda según se muestra en la Figura 3.3, se puede vercláramente que cualquier punto situado en la recta mLOL tiene una misma proyecciónmL. Por ello a partir de una única proyección mL no es posible determinar a que puntoM corresponde la misma. Ésta ambigüedad, de la que se habló al comienzo de esta partedel capítulo, no permite estimar la distancia a la que se encuentra un punto 3D respectoa su proyección sobre la cámara. Todo lo explicado ocurrirá de forma análoga para el casode la cámara derecha.

Para poder utilizar la geometría epipolar, y así poder triangular, se han de tener encuenta la siguiente lista de a�rmaciones:

Todo punto M dentro del campo de visión de las cámaras se encuentra situado enel plano epipolar, tendrá dos proyecciones (mL, mR).

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

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 deberseca 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. Entoncesla proyección asociada de la otra imagen se situará a lo largo de la línea epipolarde esa otra cámara. Esto establece una imposición llamada restricción epipolar, lacuál dictamina que una vez conocida la geometría epipolar del montaje, es posiblerealizar una búsqueda bidimensional de los pares de proyecciones a lo largo de laslíneas epipolares. Esto permitirá un ahorro computacional a la hora de realizarbúsquedas de correspondencias, que son los pares de proyecciones asociadas a unmismo punto M del espacio 3D. Además ayudará a descartar falsos positivos másfácilmente.

Cualquier plano epipolar Ψ asociado a un punto del espacio, intersecará siempre ala recta que une OL y OR.

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

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ámararespecto 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 enuna disposición determinada, entonces sus proyecciones en las imágenes guardaránel 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, obtenerla 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 detrabajar 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ñadidode 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ónacerca de las propiedades intrínsecas de las cámaras. Lo que realmente hace es relacionarla situación de un punto M visto desde la cámara izquierda con la localización del mismopunto visto desde la cámara derecha, todo ello en coordenadas físicas. A continuación seprocede a deducir matemáticamente la matriz esencial.

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

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

Sean ML y MR a la posición tridimensional del punto M referida al origen de coordenadasde la cámara izquierda y derecha respectívamente. Además supóngase que el origen decoordenadas global del sistema es el centro de proyección OL como se muestra en la Figura3.4. En consecuencia:

La posición del punto M respecto a ese origen de coordenadas global coincidirá conML.

El origen de coordenadas OR estará a una distancia T de OL. T es el vector detranslación.

El punto M visto desde la cámara derecha podrá expresarse como

MR = R(ML − T) . (3.2)

Sea un plano de�nido 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ánla siguiente restricción

(x − a)Tn = 0 . (3.3)

Como ML se encuentra dentro del mismo plano epipolar, y además T × ML es unvector 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) puedeexpresarse como (ML − T) = R−1MR, por lo que

(RTMR)T (T × ML) = MRT R(T × ML) = 0 . (3.5)

Además, es posible [3] reescribir el producto escalar T × ML como

T × ML = SML ⇒ S =

0 −Tx Ty

Tx 0 −Tx

−Ty Tx 0

, (3.6)

así que la ecuación (3.5) se podrá expresar como

MRT RSML = 0 . (3.7)

Considérense ahora las relaciones

mL =fRML

ZL

, (3.8)

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

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

mR =fRMR

ZR

. (3.9)

Teniéndolas en cuenta, dividiendo la ecuación (3.7) por ZLZL

fLfLy de�niendo E = RS

entonces

mRT EmL = 0 , (3.10)

que es la expresión que relaciona los puntos de las imágenes de ambas cámaras. Estarelació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 ydos que indican la dirección de la translación.

Su determinante es cero, ya que es una matriz de rango 2. Como consecuencia, dalugar 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 dela geometría relativa a las dos cámaras, una respecto a la otra. Sin embargo no proporcionalos parámetros intrínsecos de las cámaras del sistema y tampoco maneja las coordenadasde los puntos en píxeles. Esto último es necesario si se quiere relacionar los píxeles deuna imagen con sus correspondientes líneas epipolares en la otra, de manera que se puedafacilitar la búsqueda de correspondencias. Es por ello que el cálculo y uso de la matrizfundamental 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 seexpuso 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á de�nir como

LL = eL × mL = [eL]×mL , (3.11)

donde

[eL]× =

0 −ex ey

ex 0 −ex

−ey ex 0

. (3.12)

Teniendo en cuenta la ecuación (3.1)

LR ' (PR)−1PLT LL , (3.13)

y usando además la expresión (3.11)

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

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

LR ' (PR)−1PLT [eL]×mL , (3.14)

donde la matriz fundamental es

F ' (PR)−1PLT [eL]× . (3.15)

El hecho de que mR se encuentre a lo largo de la línea LR se puede expresar así

mRT LR = 0 , (3.16)

que junto con las ecuaciones (3.14) y (3.15) permite llegar a la expresión que relacionalos puntos de ambas imágenes

mRT FmL = 0 . (3.17)

De todo lo anterior se deduce que dada la matriz F y un punto de una imagen mL omR entonces

LR ' FmL , (3.18)

LL ' FmR . (3.19)

Finalmente, si se tiene en cuenta que F ' (PR)−1PLT [eL]× y que [a]×a = 0 para

cualquier a entonces

FeL = 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 fundamentalpor medio de la siguiente expresión

F = (P−1R )T EP−1

L , (3.21)

por lo que en este apartado tan sólo se explicará la forma en la que el programa quese ha implementado en este proyecto calcula la matriz F . Una vez realizada esa tarea, elprograma efectuará el cálculo de la matriz E a partir de la matriz F y las matrices deproyección, según la expresión anterior.Existen varios algoritmos que, partiendo de la ecuación (3.17), calculan F . Todos ellosrequieren de un número de puntos de cada imagen para su correcta ejecución. En el casode estudio estos puntos son las esquinas detectadas en el damero. Según muestra la Tabla

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

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 necesariosen 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 conel hecho de que la matriz F siempre es de rango 2. La desventaja de esta restricción esque provoca que hasta tres matrices F puedan darse como posible solución, y llegado elcaso 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 seutilizan más de 8 puntos la solución será mejor, ya que se podrá aplicar un algoritmo deminimización del error.En cualquier caso, el problema de ambos algoritmos es que son muy sensibles respecto alos valores atípicos (esquinas del damero cuya detección no ha sido su�cientemente preci-sa), incluso si se usan más de 8 puntos.Por otro lado, los algoritmos RANSAC (RAndom SAmpling Consensus) y LMedS (LeastMedian of Square) son más robustos, ya que tienen la capacidad de reconocer y eliminarlos 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 de8 puntos.De estos 4 algoritmos, el elegido para su implementación en este proyecto es el algoritmoRANSAC [6], ya que es muy robusto y uno de los más utilizados, lo que hace fácil suimplementació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 matrizfundamental. Esta se va re�nando en cada repetición, hasta que se cumple un criterio decalidad [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 distanciasde objetos situados a una distancia del mismo. En ella se pueden observar dos cámarassituadas 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 in�nito.

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

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

Figura 3.5: Montaje frontal paralelo: las dos cámaras se encuentran en el mismo plano yademá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 decoordenadas 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 medidaen unidades de longitud, tendrán una misma longitud focal (fL = fR = f), y además lascoordenadas de los puntos principales pL y pR coincidirán si se referencian a los sistemasde coordenadas de cada una de las cámaras.Todas estas propiedades del sistema ayudarán a que la búsqueda de correspondenciasentre las dos imágenes se logre más e�cázmente. Es por eso que en este proyecto, esa hasido la opción elegida para construir el sistema de visión estéreo.

3.5. Recti�cación de imágenes.

En la práctica se ha tratado de que las dos cámaras estén dispuestas de la forma másparecida al montaje frontal paralelo explicado anteriormente. Si se logra una disposición

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

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

Figura 3.6: Un montaje frontal paralelo ideal como el mostrado, hace que la búsqueda decorrespondencias se convierta en un problema unidimensional. Esto es debido a que lascorrespondencias 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 seconvierta en un problema unidimensional es decir, que las dos proyecciones de un mismopunto se encuentren situadas a lo largo de una misma recta horizontal que atraviese ambasimágenes. Esto provocaría una disminución del tiempo de cómputo y un aumento de laprobabilidad de acierto a la hora de buscar correspondencias de puntos.

Sin embargo, aunque el montaje se haya hecho con sumo cuidado, puede que lascámaras estén giradas un ángulo inapreciable a simple vista. Aunque muy pequeño, estegiro puede afectar notablemente al resultado �nal, por lo que se hace necesario el uso dealgoritmos que corrijan los posibles desplazamientos de píxeles debido a las diferenciasentre el montaje llevado en la práctica y el ideal propuesto en el apartado 3.4.

3.5.1. Algoritmos de recti�cación.

Como uno de los objetivos del proyecto es realizar la búsqueda de correspondencias dela forma más sencilla y precisa posible, será necesario que las �las de píxeles de cada imagenestén complétamente alineadas. Para asegurar que esto se cumple con la mayor exactitud,se dispone de dos métodos matemáticos [3] que recti�carán las imágenes, de manera queestas 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.

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

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

(a) (b)

Figura 3.7: Se puede apreciar como el objeto de la Figura a) tiene la misma proyecciónen 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 in�nito. Para ello utiliza correspondencias entrepuntos de pares de imágenes que o bien le son previamente dados, o bien es él mismo quienlas busca en el set de imágenes a recti�car. En este proyecto las esquinas detectadas en undamero 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 quese haya calculado previamente.Entre las desventajas que caracterizan a este algoritmo, destaca el hecho de que no tiene encuenta las matrices intrínsecas de las cámaras. Tampoco es capaz de calcular las matricesde proyección recti�cadas, que son las matrices PL y PR que contienen los parámetrosintrínsecos tal que las longitudes focales, centros ópticos y puntos principales son igualesen ambas cámaras. Esto se traduce en que Hartley no tiene sentido de la escala de losobjetos que aparecen en la escena. Por ejemplo, supóngase un objeto en la escena. Dadoel caso, no se sabría si mide 10 metros de altura y está lejos de las cámaras, o si por elcontrario es una miniatura que tiene 10 centímetros de alto y está cerca de ambas. Esteefecto se puede apreciar en las �guras 3.7(a) y 3.7(b), y es un grave problema si se deseahacer 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 dondela distorsión sea elevada. Por ello es conveniente utilizar imágenes donde estas hayan sidocorregidas mediante una calibración de las cámaras. En consecuencia, aunque Hartley seacapaz de calcular F sin un proceso previo de calibración, esto casi nunca es recomendabley 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 recti�cación deHartley de forma resumida:

1. Identi�cació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 ganarprecisión.

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

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

2. Cálculo de la matriz fundamental de forma similar a lo explicado en el apartado3.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

FeL = 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 elin�nito. Esta homografía tendrá varios grados de libertad, lo que hará que algunas delas soluciones generen imágenes distorsionadas. Para que esto no ocurra se de�nirádicha homografía en el entorno de un determinado punto x0 como

HR = GRT , (3.24)

donde

G =

1 0 0

0 1 0−1f

0 1

, (3.25)

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

G es la matriz encargada de llevar el punto (f, 0, 1) al in�nito.

En de�nitiva, 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 minimicela suma distancias

∑i

d(HLxLi, HRxRi) . (3.26)

6. Finalmente se transforman las imágenes derecha e izquierda con las homografíasHR y HL respectívamente, por lo que resultarán imágenes con sus �las de píxelesalineadas. En la Figura 3.8(b) se ve cómo los puntos de la imagen izquierda y suscorrespondencia en la derecha se encuentran a lo largo de una línea horizontal quecruza ambas imágenes.

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

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

(a)

(b)

Figura 3.8: Aunque ambos hacen una buena recti�cación de los píxeles, se puede observaren 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 relacionanlas 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, semuestre 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 encuanto a este efecto se re�ere.

Otra ventaja del algoritmo de Bouguet es que logra minimizar las distorsiones intro-ducidas durante la recti�cación. Esto lo consigue partiendo del hecho de que la rotaciónR de la imágen derecha equivale a dividir el giro completo en dos rotaciones rL y rR quese aplican a la imágen izquierda y derecha respectivamente. Con esto conseguiría que losrayos principales estuvieran paralelos (y por tanto los planos proyectivos coplanares). Sinembargo no se lograría que las �las de píxeles quedaran alineadas. Es por eso que lo querealmente hace es calcular dos matrices RL y RR a partir de una matriz de rotación Rrect

previamente recti�cada.

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

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

Rrect es la matriz que trasladará el epipolo eL al in�nito y alineará las líneas epipolaresa lo largo del eje x. Estando formada por tres vectores, el primero de ellos será el vectorunitario normalizado que indique la dirección del epipolo eL, coincidiendo esta con elvector de translación T normalizado

e1 =T

‖T‖. (3.27)

El siguiente vector que conformará Rrect debe ser ortogonal a e1, ya que toda matriz derotación está formada por vectores unitarios ortogonales entre sí. Una elección acertadaes 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, ynormalizando se obtiene

e2 =(−Ty Tx 0)T√

Tx2 + Ty

2. (3.28)

Y por último el tercer vector será e3 = e1 × e2, de forma que la matriz Rrect quedará

Rrect =

e1T

e2T

e3T

, (3.29)

por lo que

RL = RrectrL , (3.30)

RR = RrectrR , (3.31)

que serán las matrices de rotación recti�cadas 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 recti�cadas, y a partirde ellas construye la siguiente matriz

Q =

1 0 0 −pLx

0 1 0 −pLy

0 0 0 f

0 0 −1Tx

pLx−pRx

Tx

, (3.32)

donde

pLx y pRx son las coordenadas del eje x de los puntos principales de las cámarasizquierda y derecha.

f es la longitud focal de las cámaras recti�cadas. Tendrá un único valor común aambas.

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

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

Tx es la componente x del vector de translación T que relaciona una cámara respectoa la otra.

La utilidad de esta matriz Q reside en el hecho de que permite proyectar puntos 2D delas imágenes al mundo real, consiguiendo establecer sin ambigüedad una correspondenciaentre los puntos 3D y píxeles de las imágenes

Q

x

y

d

1

=

X

Y

Z

W

, (3.33)

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. Suscoordenadas euclídeas1 serían ( X

W, Y

W. ZW

).

d representa la disparidad. Este parámetro se de�ne básicamente como la diferen-cia de píxeles en una correspondencia de pares puntos de una imagen izquierda yderecha.

Finalmente se concluye que Bouguet es un algoritmo que permite recti�car las imá-genes con menos distorsión que el algoritmo de Hartley. Además facilita una herramientapara 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 disparidades lo que se explicará en el siguiente capítulo.

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

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

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 formanparte del sistema de captura, cómo corregir las distorsiones de las imágenes debidas a laslentes y la forma de recti�car las �las de píxeles de tal modo que estén alineadas. En estecapítulo se explicará cómo buscar correspondencias entre píxeles de las dos imágenes yasí 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 de�nir en el eje x e y, pero para el caso de estudio sólo se va aconsiderar 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 coordenadasde la cámara izquierda y derecha respectivamente. La disparidad entonces se de�ne comola diferencia en píxeles entre las proyecciones en las imágenes izquierda y derecha debidasa 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 lafórmula (4.1) se puede comprobar como el punto M1, que genera una proyección en cadacámara cuyos valores en el eje x son xL = 7 y xR = 3, tiene un valor de disparidad iguala 4. Recuérdese que llegados a este punto se asume que las imágenes están recti�cadas,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ísamentepara poder calcular la distancia a los objetos a través de la relación

37

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

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

Figura 4.1: Esta �gura explica el concepto de disparidad grá�camente. Además en ella seve fácilmente como a mayor disparidad, menor es la distancia que separa a los objetos delas cámaras.

Z =fT

d, (4.2)

donde

f es la distancia focal en píxeles de las cámaras. Recuérdese que tras la recti�caciónde 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 delas 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 enla Figura 4.1. Por tanto sólo se cumplirá si las imágenes han sido corréctamente recti�cadasy 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 disparidades 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ánen el mismo plano Z y por tanto serán equidistantes al plano que conforman las cámaras.

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

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 deun número variable de ellos. Por tanto uno de los objetivos de este proyecto será generarun mapa de profundidad (o de disparidad), a partir de las disparidades de los puntospertenecientes a una región de la imagen.Para ello es necesario conocer previamente los pares de correspondencias en regiones de lasimá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 objetivode obtener automáticamente dichas correspondencias se hará uso de un algoritmo debúsqueda de correspondencias.

4.3. Métodos de obtención de correspondencias.

Existen varios algoritmos que permiten obtener las correspondencias entre puntos deimá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 di�eren incluso cuando pertenecen a laproyecció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énpuede deberse al modo en el que las condiciones de iluminación varían respecto a laposició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 estetipo de medidas requieren mucho tiempo y recursos de cómputo. Por eso es habitualrealizar un pre-proceso previo con la idea de reducir de antemano las diferencias deiluminación.El modo más habitual de hacerlo es realizar la convolución de ambas imágenes conun núcleo LoG (Laplacian of Gaussian) [8]. Esto reduce la in�uencia de la ilumina-ción, puesto que la Laplaciana es cero en áreas de intensidad constante, mientrasque vale distinto de cero cuando existen gradientes de alta intensidad. Este hecho sepuede observar en el ejemplo de las �guras 4.2(a) y 4.2(b), donde se presentan unascapturas 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 valoresde intensidad o restando los cuadrados de dichos valores. Los algoritmos que hacenestas comparaciones tan sencillas se llaman algoritmos píxel-a-píxel. Normálmenteestiman la semejanza de los píxeles observando el nivel de gris, aunque la precisión esbastante limitada debido al rango de niveles en este caso (0 - 255). También pueden

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

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

(a)

(b)

Figura 4.2: En la Figura a) se muestran dos capturas con diferente luminosidad, tomadascon las cámaras izquierda y derecha del sistema de capturas. En la Figura b) se puede verel resultado de aplicar un pre-procesado mediante una convolución guassiana.

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

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

(a) (b)

Figura 4.3: En la Figura a) se muestra una fotografía cuyos colores son muy vivos graciasa la luz presente cuando se tomó la imagen. Por otro lado la Figura b) muestra unoscolores muy apagados que di�cultan la comparación de píxeles por niveles cromáticos.

medir niveles de color, pero esto es poco efectivo en condiciones de poca luz dondelas imágenes tienden a perder saturación. Ejemplo de ello son las �guras 4.3(a) y4.3(b), donde se puede ver la comparación entre una foto con una saturación decolor 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 tienenla misma intensidad, y tienen problemas con aquellos que han sido alterados porruido 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, comparanregiones de píxeles asignándoles una serie de costes. Esta manera de calcular costesprovoca que este tipo de algoritmos sean mucho más robustos frente el ruido de laimagen. 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 losbordes de los objetos también dan problemas. Si se da la situación de la Figura4.4 donde existen oclusiones, cierta cantidad de píxeles de dentro de la ventana debúsqueda quedarán ocultos en la otra imagen. Así pues se presentarán errores enesa 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 seriede 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

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

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 quedanocultos en la derecha y por tanto no podrán obtenerse sus correspondencias.

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

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 cambianlos 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 laimagen donde se de esa situación, el cálculo de disparidad será erróneo. WTA sólobusca valores de coste óptimos, por lo que es muy sensible a los cálculos realizadosen la segunda fase de este proceso. Los costes para regiones sin texturas no permitenobtener con precisión correspondencias debido a la semejanza entre píxeles. Ademástexturas con patrones que se repiten generan ambigüedades en el cálculo. En todasesas áreas WTA no es efectivo, por lo que posteriormente se explicarán otros algo-ritmos más efectivos (Konolige [7] y Birch�eld [2]) que mejoran todo el proceso debúsqueda.En cualquier caso, existen varios aspectos relativos a la geometría epipolar de laescena que los algoritmos suelen explotar con el objetivo de mejorar la búsqueda decorrespondencias:

Restricción de suavidad: los cambios de profundidad (y por tanto de disparidad)en las super�cies de los objetos son mucho menores que en sus bordes. En laFigura 4.5 se muestran estos cambios en los bordes de los objetos y como varíanlos mapas de disparidad obtenidos en función de los costes asignados.

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

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

Restricción de unicidad: un punto 3D tiene exáctamente una proyección en cadauna de las cámaras. Por tanto sólo se puede encontrar una correspondencia porcada par estéreo.

Restricción de orden: una secuencia de puntos en la imagen izquierda ordenadosde una forma determinada, han de seguir ese orden en la imagen de la derecha(y viceversa). Esto facilita la resolución de posibles ambigüedades.

4. Post-procesado (opcional).En esta fase se realizan algunos pasos posteriores a la obtención de la disparidadcomo por ejemplo: estimación el error, interpolación subpixélica o eliminación deerrores debidos a oclusiones.Anteriormente se mencionó que las zonas con pocas texturas o con patrones que serepetían, daban fácilmente lugar a errores de disparidad. Es por eso que medir elerror es una tarea de utilidad ya que da una idea de la calidad del cómputo. Lo quehabitualmente se hace es dar una medida de con�anza

C =C2 − C1

C1

, (4.3)

donde C1 y C2 son los dos mejores costes dentro del intervalo de búsqueda. En lasdos situaciones mencionadas este valor será muy bajo, ya que los costes serán simi-lares por la falta de texturas o por la reiteración de un mismo patrón. En este casose concluirá que la medida tiene muchas probabilidades de ser errónea, ya que lacon�anza obtenida es muy baja.La interpolación subpixélica es una operación mediante la cuál se dan valores deci-males de disparidad de la siguiente forma

dsubpixel = d +Cd−1 − Cd+1

2(Cd−1 − 2Cd + Cd+1), (4.4)

donde se contemplan el mejor coste y sus dos vecinos más próximos. Así se lograuna mayor precisión a la hora de dar resultados.La detección y eliminación de estimaciones erróneas debidas a oclusiones se suelehacer recurriendo de nuevo a las restricciones de la geometría de la escena anterior-mente comentadas. Aplicando la restricción de orden se asume que, conocidas lascorrespondencias de los píxeles de la izquierda con los de la derecha, al calcularlas demanera inversa (partiendo de la imagen derecha) el resultado será el mismo. De noser así se supone un error y se descartan estas correspondencias. También se hace usode la restricción de unicidad. Supóngase que para cada correspondencia encontradase guarda el valor de su coste y que en un momento dado un punto es candidatoa ser correspondencia, y que ya fue considerado como tal con anterioridad. En talcaso se procederá a comparar los costes, el actual y el almacenado, y se mantendrá

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

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

Figura 4.6: Mapa de profundidad obtenido por medio del algoritmo de Konolige.

la correspondencia cuyo coste sea mínimo. De esta forma se van eliminando falsascorrespondencias.

A continuación se describen dos algoritmos que se han considerado durante la reali-zación del proyecto. El último de ellos es el que �nalmente se ha escogido para su imple-mentación, ya que en la práctica ha demostrado mayor efectividad y precisión.

4.3.1. Método de Konolige.

Uno de los algoritmos de búsqueda de correspondencias más utilizados, es el desa-rrollado por Kurt Konolige [7], el cuál trabaja con pequeñas ventanas que utiliza parabuscar las correspondencias de puntos entre las imágenes derecha e izquierda préviamenterecti�cadas y sin distorsión.Este método tiene facilidad para encontrar correspondencias en aquellas zonas con muchatextura. Por eso en escenas con mucha textura, como por ejemplo un un bosque, casi todoslos píxeles tendrán una correspondencia asociada que permita estimar la distancia a laque se encuentran del sistema de visión. Por el contrario, en zonas como las que presentauna escena de interior de un casa, muchos de los píxeles se quedarán sin correspondencia.Una ejemplo de los resultados que se obtienen con algoritmo es el mostrado en la Figura4.6.

A continuación se describen las fases de las que consta este algoritmo:

1. Pre-procesado.En este paso las imágenes son normalizadas por lo que disminuirán las diferenciasde iluminación entre ellas y se potenciarán las texturas. Este proceso se realiza pormedio de una ventana de tamaño variable (desde 5 × 5 hasta 21 × 21) que recorre

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

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

Figura 4.7: El proceso de normalización permite igualar la luminosidad en los pares deimágenes.

la imagen en su totalidad. Posicionando su centro en cada píxel, remplaza el valordel mismo por

min[max(Ic − I ,−Icap), Icap] , (4.5)

donde

Ic es el centro de la ventana de normalización, que coincide a su vez con elpíxel sobre el cuál se efectuará la normalización.

Icap es un limite numérico cuyo valor por defecto es 30 y que determina enparte la intensidad del efecto de normalización.

I es la media de las intensidades de los píxeles que se encuentran dentro de laventana.

Un ejemplo del resultado de aplicar este proceso es el que se muestra en la Fi-gura 4.7, donde dos imágenes (izquierda y derecha) con diferentes iluminacionesse normalizan, consiguiendo que los niveles de intensidad de ambas imágenes seanprácticamente idénticos.

2. Medida de semejanza entre píxeles.Este algoritmo asigna costes aplicando la técnica SAD (Suma de diferencias abso-luta) sobre diferentes grupo de píxeles. SAD utiliza ventanas, centrando cada unade ellas en los píxeles sobre los que se van a calcular los costes, y tomando el valorabsoluto de la suma de las diferencias entre todos los píxeles dentro de esa ventana.Ese valor es el que usará para poder comparar posteriormente los píxeles a lo largode cada línea horizontal. Así puede saber cuál píxel de la imagen izquierda corres-ponde con cuál de la derecha.Debido a la naturaleza de esta técnica, se dice que este método es un algoritmo

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

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

Figura 4.8: Toda correspondencia ha de encontrase en la misma �la de la imagen derechaya que se suponen recti�cadas las imágenes. La búsqueda comienza en un valor mínimode disparidad y se prolonga a lo largo de un número de píxeles limitado. La función decorrespondencias mostrada indica cuál píxel es el mejor candidato para ser corresponden-cia.

de comparación por bloque. Este tipo de algoritmos son ampliamente utilizados, yaque son sencillos y por tanto no requieren grandes recursos de cómputo.

3. Búsqueda de correspondencias.Una vez establecidos los costes, el algoritmo de Konolige empieza la búsqueda decorrespondencias para cada uno de los píxeles de la imagen izquierda. Tal y como semuestra en la Figura 4.8, este algoritmo va mirando los píxeles de la imagen derechaque se encuentran en línea con el píxel del cuál se quiere hallar su correspondencia.Parte de un valor mínimo establecido a priori y recorre la �la de izquierda a derechadurante un número de píxeles. La búsqueda �naliza cuando se ha alcanzado un valormáximo de píxeles acordado previamente. Una vez ahí se construye la función decorrespondencias que permite determinar qué píxel es el mejor candidato para serla correspondencia.El píxel de la cámara derecha que se toma como comienzo (parámetro de mínimadisparidad) suele coincidir con las coordenadas del píxel de la cámara izquierda (ca-da uno en su propio sistema de coordenadas), aunque en ocasiones este valor se tomaa la derecha de esas coordenadas. El objetivo de esto último es poder determinar

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

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

Figura 4.9: Si las cámaras están giradas, se puede dar el caso de que la disparidad seanegativa. Es por eso que en ocasiones se elige un valor situado a la derecha del píxel queda disparidad 0.

correspondencias cuando las cámaras están ligéramente giradas como se muestra enla Figura 4.9, en cuyo caso la disparidad puede ser negativa y por tanto xL < xR.

Por otro lado, el imponer un número máximo de disparidad junto con el valormínimo (punto de comienzo de la búsqueda), establece un rango de búsqueda parael algoritmo y por tanto su resolución máxima y mínima de profundidad. La Figura4.10 presenta tres rangos diferentes de búsqueda a lo largo de los cuáles el algoritmosería capaz de estimar las correspondencias.

4. Post-procesado.Tras la detección de correspondencias, se realiza un procesado cuyo objetivo esmejorar los resultados obtenidos con el paso anterior. En la Tabla 4.1 se muestranalgunos de los �ltros de post-procesado [7] que se usan en conjunción con el algoritmode Konolige.

4.3.2. Método de Birch�eld.

En esta sección se va a describir detalladamente el algoritmo de búsqueda de corres-pondencias que se ha considerado como opción principal en la aplicación implementada.Varios han sido los motivos por los que este algoritmo, desarrollado por Stan Birch�eld[2], ha sido elegido: maneja regiones con poca textura mejor que otros, usa una medida desemejanza de píxeles que se comporta mejor frente a cambios de iluminación y el cálculoque realiza es relativamente rápido.

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

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

Figura 4.10: En esta �gura se muestran tres �echas verticales que representan posiblesrangos de búsqueda de disparidades en base a los parámetros de mínima y máxima dis-paridad.

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

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

Filtro Descripción

Correlación super�cial Da una idea de la incertidumbre que presenta lacorrespondencia obtenida observando la altura yanchura del valor de la función de correspondenciaen ese punto.

Filtro de moda En el caso de haber varios píxeles candidatos cal-cula la moda y da prioridad al que más se repita.

Comprobación izquierda/derecha Comprueba la consistencia de las correspondenciasuna de región de la imagen izquierda comparándo-la con una región de la derecha.

Operador de interés Asigna un alto grado de con�anza a aquellas áreascon mucha textura, mientras que hace lo contrariopara las zonas con poca textura.

Interpolación Se subdividen los píxeles mediante interpolaciónsubpixélica para lograr mayor precisión.

Tabla 4.1: Listado de �ltros de post-procesado que se implementan en el algoritmo deKonolige.

Este algoritmo, al contrario que del Konolige, no utiliza ventanas ni pre-procesado de lasintensidades de la imagen. Birch�eld compara costes de los píxeles de la misma línea dela imagen sobre la que se realiza la búsqueda, logrando un mapa de disparidad como elmostrado en la Figura 4.11. Si se compara con el algoritmo de Konolige (Figura 4.8) sepuede ver como las disparidades están menos difuminadas y los per�les de los objetos algomás de�nidos.

4.3.2.1. Medida de semejanza entre píxeles.

Birch�eld codi�ca las correspondencias entre píxeles dentro de una secuencia Ms comola mostrada en la Figura 4.12, la cuál indica que pares ordenados de píxeles pertenecientesa ambas imágenes son semejantes entre sí.

Los píxeles unidos por una línea discontinua son aquellos que tienen una semejanzaentre sí su�cientemente alta como para asumir que se corresponden. Por otro lado lospuntos en negro indican puntos presentes en una imagen, a los que no se les ha podidoasignar un semejante en la otra imagen.Se de�ne oclusión bien como aquel píxel o píxeles rodeados por dos o más píxeles quetengan una correspondencia asociada, o bien como un píxel no ocluido y el borde dela imagen. A estos píxeles Birch�eld les asigna una disparidad por defecto, ya que alno tener correspondencia, no se puede calcular su valor. Se mira la disparidad de losprimeros vecinos (a izquierda y derecha) que no estén ocluidos y se toma la disparidaddel más lejano de los dos como valor por defecto.

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

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

Figura 4.11: Mapa de profundidad obtenido por medio del algoritmo de Birch�eld.

Figura 4.12: Secuencia de correspondencias Ms = {(1, 0), (2, 1), (6, 2), (7, 3), (8, 4),

(9, 5), (10, 6), (11, 9), (12, 10)}.

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

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

A cada secuencia Ms se le asocia un coste γ(Ms) que indica [2] como de poco probable esque dicha secuencia sea cierta. En otras palabras, a menor coste mayor probabilidad deque esa secuencia sea correcta. El coste asignado a cada secuencia se de�ne como

γ(Ms) = Nockoc − Nmkm +Nm∑i=1

D(xLi, xRi) , (4.6)

donde:

1. xLi y xRi son las coordenadas de los píxeles de las imágenes izquierda y derecha alo largo del eje x.

2. Noc y Nm son el número de oclusiones y penalizaciones presentes en la secuencia.

3. koc y km son la penalización por oclusión y recompensa por correspondencia respec-tivamente. Es importante remarcar que estos parámetros se eligen empíricamente,mediante prueba y error.

4. D(xLi, xRi) es la disimilitud entre píxeles. Lo más lógico sería de�nirla como

D(xLi, xRi) = |IL(xLi) − IR(xRi)| , (4.7)

es decir el valor absoluto de la resta de intensidades para píxeles de la imagenderecha e izquierda. Sin embargo, esta medida es inadecuada para imágenes digitales,donde las muestras (píxeles) tienen un valor discreto que en ocasiones no re�eja conprecisión la intensidad.

La Figura 4.13 presenta las funciones de intensidad a lo largo de una misma líneahorizontal para las imágenes izquierda y derecha. Sobre ellas se encuentran marcadaslas muestras correspondientes a cada uno de los píxeles del sensor de las cámaras.Sea además IR la función de interpolación lineal para las muestras de la imagenderecha, de tal modo que introduce valores intermedios entre cada par de píxeles.Lo que se hace primeramente es comparar cuánto se aproxima la intensidad en elpíxel xLi a los valores existentes la región de alrededor de xRi. Esto se expresa como

D(xLi, xRi, IL, IR) = minxRi− 12≤xR≤xRi+

12|IL(xLi) − IR(xR)| . (4.8)

La expresión anterior se puede calcular fácilmente y en poco tiempo, ya que no esmás que una función lineal. Teniendo en cuenta que

IR− ≡ IR(xRi −

1

2) =

1

2(IR(xRi) + IR(xRi − 1)) , (4.9)

IR+ ≡ IR(xRi +

1

2) =

1

2(IR(xRi) + IR(xRi + 1)) , (4.10)

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

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

Figura 4.13: Las funciones continuas de intensidad son muestreadas. En el caso de laimagen derecha se interpolan valores para realizar una medida de semejanza entre lospíxeles con más precisión.

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

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

y de�niendo

Imin = min(IR−, IR

+, IR(xRi)) , (4.11)

Imax = max(IR−, IR

+, IR(xRi)) , (4.12)

entonces

D(xLi, xRi, IL, IR) = max{0, IL(xLi) − Imax, Imin − IL(xLi)} . (4.13)

Expresión fácil de calcular y que requiere menos recursos de cómputo que al trabajarcon resolución subpixélica, tal y como hace el algoritmo de Konolige.

Teniendo en cuenta que la expresión (4.8) es simétrica, la disimilitud según Birch�eldse expresará �nalmente como

D(xLi, xRi) = min{D(xLi, xRi, IL, IR), D(xRi, xLi, IR, IL)} . (4.14)

Permitiendo una medida de semejanza que mejora la precisión frente a los problemasde discretización que presentan las imágenes digitales con las que se trabaja.

4.3.2.2. Búsqueda de correspondencias.

El algoritmo de Birch�eld de�ne [2] una serie de restricciones que permiten una bús-queda sistemática de posibles secuencias de correspondencias y descartar falsos positivos:

C1. 0 ≤ xLi − xRi ≤ ∆, i = 1, · · · , Nm

C2. xR1 = 0

C3. xRNm= n − 1, donde n es el número de píxeles de la línea de búsqueda.

C4. xLi < xLj, y xRi < xRj, 1 ≤ i ≤ j ≤ Nm

C5. xLi+1 = xLi + 1 o xRi+1 = xRi + 1, i = 1, · · · , Nm − 1

Para reducir el tamaño del espacio de búsqueda de correspondencias, C1 considera el pa-rámetro ∆ que es la máxima disparidad permitida. Este valor es siempre positivo, ya quese consideran las dos cámaras perféctamente recti�cadas. C2 fuerza que el píxel situadomás a la izquierda en la línea de búsqueda de la imagen derecha tenga correspondenciaen la otra imágen. Análogamente C3 fuerza que el píxel más a la derecha de la líneade búsqueda de la imagen derecha tenga correspondencia. C4 es una combinación de lasrestricciones de unicidad y orden, explicadas en la sección 4.3 y por último, C5 evita

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

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

(a)

(b) (c)

Figura 4.14: La Figura a) es una rejilla de búsqueda con n = 10 píxeles y límite ∆ dedisparidad de 3 píxeles. Las Figuras b) y c) presentan las posibles correspondencias quepreceden y suceden a una correspondencia (xLi, xRi).

oclusiones simultáneas en las dos imágenes.Teniendo en cuenta las restricciones anteriores se muestra la Figura 4.14(a), la cuál pre-senta una rejilla de búsqueda formada por dos líneas de búsqueda (una por imagen)con n = 10 píxeles y cuyo límite de disparidad ∆ es de 3 píxeles. . En ella, cada celda(xL, xR) representa una posible correspondencia entre un píxel xL de la imagen izquier-da y un píxel xR de la derecha. Debido al límite de disparidad, muchas celdas (dentrode la zona oscura de la imagen) no serán consideradas como posibles correspondencias.Lo que hace Birch�eld, es buscar el mejor camino (de menor coste) que recorra la lí-nea de búsqueda. En la imagen 4.14(a) este camino se corresponde con la secuenciaMs = {(1, 0), (2, 1), (3, 2), (5, 3), (6, 4), (7, 5), (8, 7), (9, 8)}, donde las correspondencias es-tán marcadas con la letra C y en el caso de no no existir ninguna marca en la columnase supone una píxel ocluido.

Sea una correspondencia (xLi, xRi), entonces las únicas correspondencias (xLi−1, xRi−1)

posibles que le pueden preceder son las mostradas en la Figura 4.14(b) debido a las

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

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

(a)

(b) (c)

Figura 4.15: La Figura 4.15(a) presenta una rejilla de búsqueda resultado de alinearlas columnas de la Figura 4.14(a). Las �guras 4.15(b) y 4.15(c) presentan las posiblescorrespondencias que preceden y suceden a una correspondencia (xLi, xRi) en esta nuevarejilla.

restricciones C4 y C5. Análogamente las únicas correspondencias (xLi+1, xRi+1) posiblesson las de la Figura 4.14(c). Nótese que si se superponen las �guras 4.14(b) y 4.14(c)encima de la Figura 4.14(a) se deduce que el número de posibles correspondencias quepreceden o suceden a (xLi, xRi) es siempre ∆.Si se alinean las columnas de posibles correspondencias de la rejilla de búsqueda, resulta laFigura 4.15(a). En esta nueva rejilla de búsqueda, el eje vertical es δ = xL−xR, es decir ladisparidad. Debido a este desplazamiento los rangos de las correspondencias precedentesy sucesivas a una correspondencia dada se reordenan quedando como muestran las �guras4.15(b) y 4.15(c).

Lo que hace realmente es calcular el coste de la mejor secuencia (la de menor coste)hasta la celda última en base a los costes de las anteriores celdas. El coste de cada una seexpresa [2] como

ϕ[δ, xR] = γ0(xR + δ, xR) = D(xR + δ, xR) − km + ϕ[δ, xR]′ , (4.15)

donde

ϕ[δ, xR]′ = min

ϕ[δ, xR − 1],

ϕ[δ − 1, xR − 1] + koc, · · · ,

ϕ[0, xR − 1] + koc,

ϕ[δ + 1, xR − 2] + koc, · · · ,

ϕ[∆, xR + δ − ∆ − 1] + koc

, (4.16)

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

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

cuyos parámetros son conocidos, pues ya se han explicado con anterioridad en estaparte del capítulo. El algoritmo que resuelve esta ecuación calcula la ecuación anteriorsecuencialmente. De esta forma, para obtener el valor de (4.16), toma el mínimo de losdos primeros costes ϕ[δ, xR − 1] y ϕ[δ − 1, xR − 1] + koc. Entonces toma este valor y eltercer coste ϕ[δ − 2, xR − 1] + koc y se queda con el mínimo. Así sucesivamente con cadauno de los costes de las celdas precedentes que puedan ser ser correspondencia, hasta que�nalmente determina el mejor camino (menor coste) hasta el punto (δ, xR). Este procesoconlleva ∆+1 iteraciones para cada celda ya que, como se dijo anteriormente, es el númerode posibles correspondencias que pueden preceder a cada celda.Una vez calculado el mejor de todos los caminos (secuencia de menor coste), se tendránlas correspondencias y oclusiones más probables para una línea de búsqueda. Repitiendoeste proceso a lo largo de todas las líneas se obtendrá un mapa completo de disparidadque, como ya se dijo al comienzo del capítulo, permitirá estimar la profundidad de losobjetos.

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

Capítulo 5

Integración del sistema.

5.1. Introducción.

En los capítulos anteriores se ha explicado individualmente la teoría referente a losdiferentes procesos involucrados en este proyecto. En este capítulo se va a dar una visiónmás general, considerando el conjunto de todos los módulos que componen el sistema.Por otro lado se va a profundizar acerca de cómo se ha llevado a cabo la implementaciónde cada uno de ellos, resaltando aquellos aspectos que han sido incluidos en la versiónde�nitiva de este proyecto.

5.2. Módulos del sistema.

Este proyecto se subdivide en diferentes módulos que ejecutan diferentes tareas. Cadauno de ellos tiene una función especí�ca, pero el conjunto tiene como �n estimar distanciasa objetos mediante un sistema de visión estéreo. En la Figura 5.1 se muestra un diagramade bloques del sistema, en el que se da una idea de cómo interactúan los diferentes procesosdel mismo.

5.2.1. Sistema de captura de imágenes.

Utilizando dos cámaras digitales Unibrain Fire-i se ha realizado un montaje comoel de la Figura 5.2. Conectadas en serie mediante una cable IEEE-1394 (Firewire) soncontroladas por un ordenador, el cuál ejecuta un software (escrito por otro alumno delgrupo de investigación) que permite la adquisición de imágenes. Es importante señalarque dicho programa es compatible con otros modelos similares de cámaras y fácilmenteadaptable a modelos no tan parecidos que tengan diferente interfaz, etc.

Estas cámaras han sido elegidas por varios motivos:

1. Para capturar escenas en movimiento es necesario y obtener mapas de profundidadque sean precisos, es indispensable que las capturas se hagan simultáneamente. La

58

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

CAPÍTULO 5. INTEGRACIÓN DEL SISTEMA. 59

Figura5.1:

Diagram

ade

bloquesdelsistem

aquerepresentanlasdiferentes

tareas

quese

realizan

durantetodo

elproceso.

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

CAPÍTULO 5. INTEGRACIÓN DEL SISTEMA. 60

Figura 5.2: Sistema de captura formado por dos cámaras Unibrain Fire-i conectadas entresí en serie, y a su vez al ordenador encargado de procesar las imágenes capturadas.

posibilidad de utilizar las cámaras Unibrain Fire-i conectadas en serie utilizando unaconexión Firewire, junto con el uso de instrucciones de las librerías OpenCV [3] queestán optimizadas para una comunicación rápida entre el ordenador y las cámaras,hacen que las capturas se puedan tomar en instantes de tiempo muy próximos.Por tanto aún sin estar sincronizadas, permiten tomar imágenes en movimiento demanera que cumplen aceptablemente los requerimientos de esta aplicación.

2. Las características de estas cámaras (resolución máxima de 640 × 480, hasta 30imágenes por segundo, alta luminosidad, etc) son adecuadas para el tipo toma decapturas que se necesitan en el sistema.

3. Los modelos de cámara con conexión Firewire y que soportan conexión en serie entreellas son caras1. Sin embargo este modelo de Unibrain tiene un precio su�cientementeajustado (89 e cada una aproximadamente) como para que se pueda afrontar en unproyecto de este tipo, donde el equipo utilizado básicamente consta de dos cámaras,cables de conexión, una tarjeta PCMCIA Firewire y un portátil con GNU/Linux.

Para poder �jar las cámaras y que no se muevan (recuérdese que una vez calibradasno deben girarse, desplazarse o cambiar su enfoque), se ha recurrido a crear la estructuraque se muestra en las �gura 5.3(a) y �gura 5.3(b).

Se ha construido con unas piezas metálicas pegadas a las cámaras de tal manera queno puedan bascular y se asegure la rigidez del par. Además se han �jado a una caja que haservido de soporte para ponerlas en el salpicadero del coche. Finalmente se ha utilizado unportátil para ejecutar el software, el cuál se ha conectado al mechero del coche medianteun adaptador de corriente, logrando integrar el sistema en un vehículo, que es uno de los

1http://damien.douxchamps.net/ieee1394/cameras/

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

CAPÍTULO 5. INTEGRACIÓN DEL SISTEMA. 61

(a) (b)

Figura 5.3: Montaje del sistema de captura de imágenes formado por dos cámaras UnibrainFire-i. En la Figura 5.3(a) se muestra el montaje visto de frente, mientras que en la Figura5.3(a) se muestra la parte superior.

objetivos de este proyecto.

5.2.2. Calibración de las cámaras.

La calibración de las cámaras se ha planteado de forma que se hace de forma inde-pendiente a las fases que vienen a continuación. Una vez ejecutada no es necesario volvera hacerlo, siempre que las cámaras no hayan variado la posición entre sí y mantengan elmismo enfoque. En cualquier caso es recomendable realizar una calibración previa siempreque sea posible para asegurar que no se ha producido ninguno de los desajustes mencio-nados.De forma previa a la ejecución del programa, hay que tomar capturas de un tablero deajedrez tal y como se explicó en el segundo capítulo de este libro. En pocas palabras,de manera que en cada captura el damero ocupe una zona distinta dentro de la imageny asegurando que todas las esquinas interiores del mismo son visibles en la escena. LaFigura 5.4 da una idea de lo que implica este proceso inicial.

Figura 5.4: Para calibrar las cámaras es necesario tomar varias capturas de un tablero deajedrez variando su posición, dentro del campo de visión de las mismas.

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

CAPÍTULO 5. INTEGRACIÓN DEL SISTEMA. 62

A continuación se muestran fragmentos del código implementado referente a la funciónde calibración. Tan sólo se muestran fragmentos pertenecientes a lo más signi�cativo.El programa llama recursivamente a la siguiente función, para cada una de las imágenesdel damero

result = cvFindChessboardCorners (timg, cvSize (nx, ny), &temp[0], &count,

CV_CALIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_NORMALIZE_IMAGE) ,

la cuál trata de encontrar las coordenadas de todas las esquinas interiores del tablero.Devuelve un entero return que vale 1 si se han encontrado todas ellas. timg es un pun-tero a una matriz que contiene la imagen del damero sobre la que se quieren detectar lasesquinas. cvSize (nx, ny) indica el tamaño del tablero, donde nx y ny son el númerode esquinas a lo largo del eje x y y respectivamente. El parámetro &temp[0] es la direc-ción de una matriz que contiene las coordenadas de las esquinas detectadas. &count es ladirección de un entero que indica el número de esquinas detectadas en el damero. El �agCV_CALIB_CB_NORMALIZE indica que se realizará una normalización previa de la imágenpara intensi�car el contraste de la imagen. Por otro lado CV_CALIB_CB_ADAPTIVE_THRESHindica que el umbral de intensidad es adaptativo y que irá variando según las zonas de laimagen.Para comprobar si las esquinas encontradas por cvFindChessboardCorners() son correc-tas se llama a la siguiente función

cvDrawChessboardCorners (cimg, cvSize (nx, ny), &temp[0], count, result) ,

que dibuja aquellas que han sido detectadas sobre las imágenes de los tableros. De estaforma el usuario podrá comprobar por simple inspección si las detecciones coinciden conla posición real de las esquinas del tablero. La función cvDrawChessboardCorners() tienecomo primer argumento un puntero a una matriz de tipo CvArr que contiene la imagendel tablero sobre la que se quieren dibujar las detecciones. cvSize (nx, ny) y &temp[0]

tienen el mismo signi�cado y valor que en cvFindChessboardCorners(). count es unentero que indica el número de esquinas detectadas. El último argumento es un �ag paraindicar si todas las esquinas interiores del tablero han sido detectadas. Si se pone a 1 lasesquinas se pintarán de colores tal y como se muestra en la Figura 5.5(a). Por otro lado siresult vale 0, las esquinas serán rojas, lo que indicará que no todas han sido encontradasy se mostrará algo como la Figura 5.5(b). De ocurrir esto último, el programa se inte-rrumpirá, pues es necesario que esto se cumpla para poder hacer una calibración estéreo.En este caso habría que retirar aquellas imágenes que provocan esta situación.

Detectadas las esquinas de los tableros, se procede a ejecutar la calibración propia-mente dicha

cvStereoCalibrate (&_objectPoints, &_imagePoints1, &_imagePoints2, &_npoints,

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

CAPÍTULO 5. INTEGRACIÓN DEL SISTEMA. 63

(a) (b)

Figura 5.5: Si todas las esquinas interiores del damero son detectadas, entonces el pro-grama mostrará una imagen como la de la Figura 5.5(a). De no ser así, el programarepresentará algo similar a la Figura 5.5(a) e interrumpirá su ejecución.

&_M1, &_D1, &_M2, &_D2, imageSize, &_R, &_T, &_E, &_F, cvTermCriteria (CV_

TERMCRIT_ITER + CV_TERMCRIT_EPS, 1000, .1e-5), CV_CALIB_ZERO_TANGENT_DIST |

CV_CALIB_FIX_ASPECT_RATIO) .

El primer parámetro &_objectPoints es la dirección de una matriz que contiene lascoordenadas de las esquinas detectadas por cvFindChessCorners() para cada una delas imágenes. Los parámetros &_imagePoints1 y &_imagePoints2 son las direccionesde las dos matrices que contienen las coordenadas de los píxeles de las imágenes iz-quierda y derecha. &_npoints es la dirección de una matriz que contiene el número depuntos de interés presentes en cada una de las imágenes. &_M1 y &_M2 son las direc-ciones de las matrices intrínsecas de cada cámara, que serán devueltas como resultadode la calibración. Así mismo resultan &_D1 y &_D2, que son las direcciones de los vec-tores de distorsión de cada cámara. El parámetro imageSize es una variable del tipocvSize (nx, ny), cuyo valor es el tamaño de las imágenes. &_R, &_E, &_F y &_T, son lasdirecciones de las matrices de rotación (R), esencial (E) y fundamental (F ), y del vectorde translación (T). Estos valores son devueltos al �nalizar la ejecución de la calibración.CV_CALIB_ZERO_TANGENT_DIST indica que la que la distorsión tangencial es despreciableo inexistente, y por tanto no es necesario calcular los parámetros de distorsión debidos atal efecto. CV_CALIB_FIX_ASPECT_RATIO hace que los píxeles de la cámara se considerencuadrados durante la calibración y por tanto las focales fx y fy sean iguales para cadacámara. La calibración estéreo de las cámaras es un proceso iterativo, y por eso se pa-sa como argumento cvTermCriteria(), que es una estructura que de�ne cuando debe�nalizar la calibración. Sus �ags CV_TERMCRIT_ITER + CV_TERMCRIT_EPS indican que laoperación se termina cuando se haya alcanzo el número máximo de iteraciones (1000) obien cuando el error sea menor que el mínimo (1e-5).

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

CAPÍTULO 5. INTEGRACIÓN DEL SISTEMA. 64

5.2.3. Corrección de la distorsión y recti�cación de imágenes.

El programa que aquí se comenta no realiza la distorsión y la recti�cación de maneraindependiente. Lo que en realidad hace es crear unos mapas de píxeles que se utilizaránpara transformar cada imagen y así eliminar la distorsión y recti�carla.Recuérdese que para realizar la recti�cación de las imágenes (alineación de las �las depíxeles), se consideraron dos métodos: el de Bouguet y el de Hartley. En este proyecto seha optado por utilizar el algoritmo de Bouguet ya que, como se comentará en el siguientecapítulo, ha funcionado mejor que el de Hartley, consiguiendo unos resultados mucho másprecisos.El algoritmo de Bouguet se ejecuta llamando a la siguiente sentencia

cvStereoRectify (&_M1, &_M2, &_D1, &_D2, imageSize, &_R, &_T, &_R1, &_R2,

&_P1, &_P2, Q, 0) ,

donde _M1 y _M2 las dos matrices intrínsecas, _D1 y _D2 los vectores de distorsión, Rla matriz de rotación y T el vector de translación, todos ellos calculados durante la ca-libración de las cámaras. Esta función calcula las matrices de rotación _R1 y _R2, queson las que corregirán las imágenes para que queden recti�cadas. Además calculan lasmatrices de proyección recti�cadas _P1 y _P2, y la matriz Q que permite proyectar puntosdesde una imagen al mundo real.Por último, se calculan los mapas de píxeles (mx1, my1, mx2, my2) que permiten transfor-mar cualquier imagen tomada con este par de cámaras, en una imagen sin distorsión yrecti�cadas

cvInitUndistortRectifyMap (&_M1, &_D1, &_R1, &_P1, mx1, my1)

cvInitUndistortRectifyMap (&_M2, &_D2, &_R2, &_P2, mx2, my2) .

Para aplicar estas transformaciones a las imágenes es necesario ejecutar estas dos sen-tencias (una por imagen)

cvRemap (img1, g_img1r, mx1, my1, CV_INTER_CUBIC)

cvRemap (img2, g_img2r, mx2, my2, CV_INTER_CUBIC) ,

de manera que se obtendrán dos imágenes recti�cadas y libres de distorsión debida alas lentes, tal y como se muestra en la Figura 5.6. El �ag CV_INTER_CUBIC indica quese empleará una interpolación bicúbica siempre que se requiera durante la operación derecti�cación.Es muy importante recalcar que sólo se lograrán unos buenos resultados si la cámaras nose han movido una respecto a la otra (misma distancia entre ellas), tampoco han sidogiradas, y su enfoque sigue siendo el mismo. Por eso es importante que la estructura sobre

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

CAPÍTULO 5. INTEGRACIÓN DEL SISTEMA. 65

la que están montadas las cámaras sea estable. En cualquier caso es recomendable unacalibración previa siempre que se pueda.

Cualquiera que haya sido el método de recti�cación utilizado, el programa guarda mx1,my1, mx2 y my2 en un archivo XML creado para tal �n mediante la instrucción

fs = cvOpenFileStorage (calibration_file, 0, CV_STORAGE_WRITE) ,

donde fs es un puntero al �chero XML, calibration_file es una cadena de carac-teres que indica el nombre del �chero y CV_STORAGE_READ es un �ag que indica que el�chero se debe abrir en modo escritura. Para escribir dichos valores en el �chero se ejecu-tan las siguientes sentencias

cvWrite (fs, "mx1", mx1)

cvWrite (fs, "mx2", mx2)

cvWrite (fs, "my1", my1)

cvWrite (fs, "my2", my2) .

En caso de haber utilizado el método de Bouguet se guarda además la matriz Q

cvWrite (fs, "Q", _Q) .

Posteriormente se podrán leer estos valores sin tener que recurrir a una calibración previade las cámaras abriendo el �chero XML donde están guardados los valores

fs = cvOpenFileStorage (calibration_file, 0, CV_STORAGE_READ) ,

y ejecutando las siguientes órdenes

mx1 = (CvMat *)cvReadByName (fs, 0,"mx1")

mx2 = (CvMat *)cvReadByName (fs, 0,"mx2")

my1 = (CvMat *)cvReadByName (fs, 0,"my1")

my2 = (CvMat *)cvReadByName (fs, 0,"my2")

g_Q = (CvMat *)cvReadByName (fs, 0,"Q") ,

donde mx1,my1, mx2, my2 y g_Q son las variables que apuntan a las variables que al-macenarán los valores que se leen del archivo XML apuntado por fs. De este modo no setendrá que ejecutar el algoritmo de recti�cación cada vez que se quiera alinear las �las depíxeles de un par de imágenes tomadas con estas cámaras.

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

CAPÍTULO 5. INTEGRACIÓN DEL SISTEMA. 66

Figura 5.6: En la parte superior se muestran dos imágenes tan cuál fueron capturadas porlas cámaras (con distorsión y sin recti�car). En la parte inferior se muestran las mismascon la distorsión corregida y recti�cadas. Aunque a simple vista parezcan distorsionadasesto es debido a que el proceso de recti�cación deforma las imágenes, y no a que aún seencuentre presente el efecto de distorsión las lentes.En esta imagen se han marcado en color algunos pares de puntos para ver que las imágenesde la parte inferior están muy bien recti�cadas, mientras que las de la parte superior no.

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

CAPÍTULO 5. INTEGRACIÓN DEL SISTEMA. 67

Figura 5.7: Mapa de disparidad obtenido a partir de las correspondencias de puntos encon-tradas entre un par de imágenes. Las diferentes tonalidades de gris indican disparidadesdiferentes.

5.2.4. Búsqueda de correspondencias.

El paso inmediatamente anterior a la estimación de distancias toma las imágenesrecti�cadas y busca las correspondencias de puntos entre ellas, obteniendo un mapa dedisparidad como el mostrado en la Figura 5.7.

Esta acción se lleva a cabo mediante la ejecución de la siguiente sentencia que realizael algoritmo de Birch�eld de búsqueda de correspondencias

cvFindStereoCorrespondence (g_img1r, g_img2r, CV_DISPARITY_BIRCHFIELD, g_disp,

DISP_RES, g_param1, g_param2, g_param3, g_param4, g_param5) ,

donde g_img1r y g_img24 son las matrices que contienen los píxeles de las imágenesizquierda y derecha recti�cadas. CV_DISPARITY_BIRCHFIELD indica que el método de bús-queda es el de Birch�eld [2], cuyo comportamiento dependerá del valor de los paráme-tros g_param1 (penalización por oclusión), g_param2 (recompensa por correspondencia),g_param3 (región de con�anza alta), g_param4 (región de con�anza media) y g_param5

(región de con�anza baja). El parámetro g_disp es la matriz que contendrá las dispari-dades tras ser calculadas y tendrá una resolución mayor cuanto mayor sea el parámetroDISP_RES (255 como máximo). Es importante destacar que la calidad del mapa de dispa-ridad dependerá en gran parte de la recti�cación llevada a cabo en el paso anterior, y noúnicamente de la variación de los argumentos de cvFindStereoCorrespondence().

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

CAPÍTULO 5. INTEGRACIÓN DEL SISTEMA. 68

5.2.5. Estimación de distancias.

Tras obtener el mapa de disparidad el programa realiza el siguiente cálculo

for (i = i_min; i < i_max; i++)

{

for (j = j_min; j < j_max; j++)

{

disp_ij = cvGetReal2D (disp, i, j)

hist[disp_ij]++

}

}

average = MaxIndex(hist, 256) ,

el cuál recorre todos los puntos del mapa de disparidad correspondientes a una región. Enel código anterior j_max y i_min se corresponden con las coordenadas x e y de la esquinasuperior izquierda. Análogamente j_min y i_max son las coordenadas x e y de la esquinainferior derecha. Estas dos esquinas delimitan la región de píxeles del mapa de disparidadsobre la que se estimará la distancia. Esta región se puede puede de�nir de dos formas.La primera posibilidad es que el usuario utilice el ratón para marcar las esquinas superiorizquierda e inferior derecha que la delimitan, directamente sobre el mapa de disparidadque el programa muestra durante su ejecución. La otra posibilidad es dejar que sea unalgoritmo de detección el que averigüe cuáles son esas regiones de disparidad sobre las quecalcular la distancia. En este proyecto se ha incluido una implementación de un módulode detección, realizada por un alumno del grupo de investigación, basada en el algoritmode Felzenszwalb [4].En cualquier caso, la estimación de distancias depende de la disparidad media en cadauna de las regiones. Sin embargo en vez de hacer una media, se calcula el histograma dedisparidades de cada región y se toma el valor que más se repite (valor retornado porMaxIndex(hist, 256) en el código anterior). Así se minimiza el error que se produce de-bido a disparidades erróneas. Una vez hecho lo anterior, se calcula la distancia mediantela Fórmula (4.2) que la relaciona con la disparidad

Z = (focal * T) / (float)average .

En la Figura 5.8 puede verse un ejemplo de la distancia estimada a la que dos perso-nas se encuentran respecto a las cámaras. Las regiones de interés han sido seleccionadaspor un algoritmo de detección de personas que ha sido previamente ejecutado.

Como ya se dijo anteriormente el tono de gris en el mapa de profundidad indicadiferentes disparidades. Por lo mismo la distancia estimada en el mapa viene indicada porel cambio de tonalidad, siendo un tono oscuro una región alejada de la cámara, mientras

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

CAPÍTULO 5. INTEGRACIÓN DEL SISTEMA. 69

Figura 5.8: Detectadas las dos personas que salen en la imagen de la izquierda, y a partirdel mismo mapa de disparidad de la Figura 5.7, se han estimado las distancias a las quese encuentran respecto al sistema de capturas.

que cuanto más claro sea el gris signi�cará que más cercano se encuentra el objeto.

5.3. Manual del software.

5.3.1. Requerimientos e instalación.

El software de este proyecto se compone de dos programas escritos en lenguaje C/C++:uno que realiza la de estimación de distancias y otro que hace la calibración de las cáma-ras. Para poder ejecutar este software es necesario compilar los �cheros proporcionados enel CD que viene junto con este libro. Se necesita tener instalado un compilador C/C++compatible (Ej.: gcc) en un sistema GNU/Linux. Además es un requisito tener instaladasen el sistema las librerías OpenCV en su versión 1.1pre, ya que versiones anteriores notienen algunas funciones indispensables para cumplir los objetivos del proyecto. Por tanto,para compilar este software es necesario instalar dicha versión de OpenCV junto con susdependencias. Para ver cuáles son y cómo se instalan, se recomienda visitar la página delproyecto OpenCV2 y leer detenidamente la documentación que allí se encuentra disponi-ble.El proceso de instalación del software propio requiere el uso de una consola de comandos.Lo primero que hay que hacer es, situarse en la carpeta donde se encuentran los �cherosfuente correspondientes

usuario@PC:~$ cd /carpeta_ficheros_fuente/ ,

2http://opencv.willowgarage.com/

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

CAPÍTULO 5. INTEGRACIÓN DEL SISTEMA. 70

y después ejecutar

usuario@PC:~$ make install .

Si aparece algún error de compilación, puede deberse a la falta de alguna dependen-cia de OpenCV. En esta situación es recomendable revisar el �chero README que seadjunta al descargarse las librerías de visión y comprobar que la instalación se ha efectua-do adecuadamente. Es importante no olvidar que se deben compilar tanto el programa decalibración como el de estimación de distancias, por lo que habrá que realizar la operaciónanterior para cada uno de ellos.

5.3.2. Ejecución.

A continuación se va a ver como ejecutar cada uno de los programas. En el caso delsoftware de calibración de cámaras basta con situarse en la carpeta donde se encuentrecompilado

usuario@PC:~$ cd /programa_calibracion/ ,

y teclear

usuario@PC:/programa_calibracion/$ ./calib .

Tras pulsar la tecla Enter se empezarán a mostrar mensajes en la consola. Puede quealgunos informen de errores de la ejecución. Cuando no se está familiarizado con estesoftware y se ejecuta inadecuadamente, es común que se muestre el siguiente error

usuario@PC:/programa_calibracion/$ Segmentation Fault .

Esto generalmente se debe a que no existe ninguna imagen de calibración dentro dela carpeta /programa_calibracion/calib_images/ o que las que hay no tienen un for-mato de imagen JPG. De ser así es necesario tomar algunas capturas de un damero eincorporarlas a dicha carpeta. Otros errores mostrarán breves mensajes explicativos quepermitirán al usuario encontrar una solución fácilmente si se leen con detenimiento.El programa de calibración tiene varios parámetros que permiten mostrar las esquinasdetectadas, especi�car las dimensiones de la imagen, etc. Si lo que se desea es ver cuálesson, debe ejecutar

usuario@PC:/programa_calibracion/$ ./calib --help ,

y un texto de ayuda como el de la Figura 5.9 se imprimirá en la consola. En él se listan

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

CAPÍTULO 5. INTEGRACIÓN DEL SISTEMA. 71

Figura 5.9: El texto de ayuda del programa de calibración muestra los argumentos quepermiten al usuario indicar el tamaño de la imagen, esquinas del damero, algoritmo derecti�cación que se debe utilizar y si se deben mostrar o no las esquinas detectadas.

los posibles argumentos del programa (tamaño de la imagen y número de esquinas deldamero) y las diferentes posibilidades de ejecución que se ofrecen al usuario (algoritmode recti�cación a usar y mostrar o no las esquinas detectadas).

Para ejecutar el programa de estimación de distancias, hay que seguir el mismo pro-ceso que para el de calibración. Primero se accede al directorio donde está compilado

usuario@PC:~$ cd /programa_distancias/ ,

y se teclea

usuario@PC:/programa_distancias/$ ./dist .

Al ejecutar el programa puede que se impriman mensajes de error en la consola. La mayo-ría de ellos se solucionan fácilmente leyendo el mensaje que se muestra cuando se originan.El error de Segmentation Fault también puede darse, y si aparece signi�cará que no hayimágenes sobre las que trabajar en la carpeta /programa_distancias/measure_images/o que se encuentran en un formato que no es JPG.Si se quieren ver las opciones disponibles para este programa, habrá que ejecutar

usuario@PC:/programa_distancias/$ ./dist --help ,

el cuál mostrará un mensaje de ayuda similar al de la Figura 5.10. Estas permiten al

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

CAPÍTULO 5. INTEGRACIÓN DEL SISTEMA. 72

Figura 5.10: El texto de ayuda del programa de estimación de distancias muestra losargumentos que permiten al usuario indicar el tamaño de la imagen, método de búsquedade disparidades, fuente de lectura de las imágenes, separación de las cámaras, etc.

usuario indicar el tamaño de la imagen, la separación de las cámaras, las imágenes porsegundo que se deben capturar (si se captura desde las cámaras directamente), especi�-car el nombre del archivo XML donde está la calibración, si se deben mostrar los mapasde disparidad, si se han de guardar los resultados en el disco, qué método de búsquedade disparidad hay que emplear (Birch�eld o Konolige), si se aplicará algún algoritmo dedetección de objetos y la fuente de las imágenes a utilizar (leer capturas del disco, extraerimágenes de un vídeo guardado o usar las cámaras directamente).

En los dos programas existen valores de las opciones por defecto. Si el usuario noindica ninguna opción, el programa utilizará dichos valores. Estos se hayan especi�cadosen el archivo param.h dentro de las carpetas donde se encuentra cada programa.

5.4. Diagramas de �ujo de los programas.

A continuación se muestran dos diagramas que pretenden dar una idea de cómo secomporta la ejecución de ambos programas.

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

CAPÍTULO 5. INTEGRACIÓN DEL SISTEMA. 73

¿Hay imágenes JPG?exit(0)

cvFindChessBoardCorners()

¿Se han detectadotodas las esquinas?

¿Mostrar esquinas? cvDrawChessBoardCorners()

cvStereoCalibrate()

cvInitUndistortRectifyMap()

cvRemap()

¿Hay más imágenes?

cvOpenFileStorage()

cvWrite()

No

NoSí

No

Inicio

exit(0)

No

Figura 5.11: Ejecución secuencial del programa de calibración de cámaras implementado.

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

CAPÍTULO 5. INTEGRACIÓN DEL SISTEMA. 74

¿Hay imágenes JPG? exit(0)No

¿Fuente de imágenes?

Imágenes en disco

¿Conexión con las cámaras?

Adquirir imágenes de las cámaras

No

¿Método de búsquedade correspondencias?

¿Se pueden extraerimágenes del video?

exit(0)No

Video en disco

cvFindStereoCorrespondence() cvFindStereoCorrespondenceBM()

KonoligeBirchfield

¿Más imágenespara procesar?

cvOpenFileStorage()cvRead()¿Se puede leer el fichero XML con los datos de calibración?

No

cvShowImage()

¿Mostrar mapa de disparidad?

¿Más imágenespara procesar?

No No SíSí

Inicio

Figura 5.12: Ejecución secuencial del programa de estimación de distancias.

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

Capítulo 6

Resultados.

6.1. Introducción.

Para poner a prueba el sistema de estimación de distancias, se han realizado una seriede grabaciones con las cámaras. Gracias a ellas se ha obtenido un conjunto de resultadosque dan una idea de como se comporta este sistema. En este capítulo se van a analizardetalladamente algunos datos derivados de estas pruebas (errores, tiempos de ejecución,etc.), y así facilitar la deducción de las conclusiones que se muestran en el último capítulode este libro.

6.2. Calibración.

6.2.1. Detección de esquinas.

En esta fase no se han presentado complicaciones ya que la función de OpenCV querealiza el algoritmo de detección de esquinas es muy efectiva. Aún capturando el dameroen posiciones diversas, las esquinas son encontradas y posicionadas con exactitud, tal ycomo se puede ver en la Figura 6.1. En los casos en los que no ha funcionado correctamentese ha sido debido a alguna de las siguientes situaciones:

El tamaño del damero en la imagen era tan reducido que hacía que al algoritmo dedetección le fuera muy difícil encontrar las esquinas.

La distancia al tablero de ajedrez era tal que hacía imposible la detección de lasesquinas debido al desenfoque excesivo del objeto en la imagen.

Recuérdese que aquellas imágenes en las que no se han detectado todas las esquinasse han descartado durante el proceso, ya que para poder encontrar la calibración estéreoes necesario tener el mismo número de puntos detectados en las capturas tomadas desdecada una de las cámaras.

75

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

CAPÍTULO 6. RESULTADOS. 76

Figura 6.1: En esta imagen se puede ver como el algoritmo de detección de esquinasfunciona muy bien aún girando el tablero o cambiándolo de posición.

6.2.2. Calibración estéreo.

En esta fase tampoco se han encontrado grandes di�cultades para sacar unos buenosresultados. Para ello se han usado numerosas imágenes de calibración (capturas del da-mero) de tal forma que se ha facilitado la obtención de los parámetros intrínsecos, matrizfundamental, etc.A continuación se muestran los resultados numéricos obtenidos en la calibración realizadacon el montaje �nal de las cámaras, los cuáles se corresponden con los parámetros expli-cados en la teoría descrita en los temas anteriores de este libro.Las matrices intrínsecas de las cámaras izquierda y derecha son

KL =

870,265 0,000 332,638

0,000 870,265 247,466

0,000 0,000 1,000

, (6.1)

KR =

862,309 0,000 303,813

0,000 862,309 239,706

0,000 0,000 1,000

, (6.2)

cuyos valores siguen la estructura matricial mostrada en la ecuación (2.5) Cada una pre-senta unas focales fx y fy del mismo valor ya que la calibración está con�gurada paraasumir que los píxeles de los sensores de las cámaras son cuadrados, y por tanto consideraruna única focal (fcamara = fx = fy) por cada cámara. Además se puede ver que las focalesson similares en las dos cámaras (fL = 870, 265 y fR = 862, 309). Esto tiene su lógicaya que, antes de realizar la calibración, se trató de ajustar manualmente el enfoque deambas cámaras para que objetos situados a una distancia determinada tuvieran la mismanitidez en las imágenes izquierda y derecha. Es decir, que las dos tuvieran un enfoquelo más parecido posible y así mejorar la e�cacia de operaciones posteriores como son larecti�cación o la búsqueda de correspondencias. Por otro lado, las coordenadas de loscentros ópticos calculados, (332.638, 247.466) y (303.813, 239.706), no coinciden con elcentro justo de la imagen (640

2, 480

2) en ninguna de las dos cámaras. Esto no es de extrañar

pues, como se ha comentado otras veces en este libro, el eje óptico no suele pasar por elcentro exacto de la imagen y en consecuencia, el punto principal esté descentrado.

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

CAPÍTULO 6. RESULTADOS. 77

Los parámetros de distorsión se incluyen en los vectores

DL =(−0,110, 1,414, 0,000, 0,000, −6,574

), (6.3)

DR =(−0,124, 1,290, 0,000, 0,000, −6,212

), (6.4)

cuya 1ª, 2ª y 5ª componentes son los coe�cientes k1, k2 y k3 de la distorsión radialsegún se expresa en la ecuación (2.9). La 3ª y 4ª componentes se corresponden con loscoe�cientes p1 y p2 de la distorsión tangencial según se indica en la ecuaciones (2.12) y(2.13). En este caso ambas valen cero, cosa que era de esperar pues la calibración tambiénse con�guró para asumir que este efecto era inexistente en las lentes de las cámaras.Con la calibración también se obtienen la matriz de rotación

R =

1,000 0,002 0,023

−0,002 1,000 −0,017

−0,023 0,017 1,000

, (6.5)

que informa acerca del giro de la cámara derecha respecto a la izquierda, y el vectorde translación

T =(−146,478, −1,253, 3,498

), (6.6)

que indica el desplazamiento de la cámara derecha tomando la izquierda como origendel movimiento.Finalmente se obtiene la matriz Fundamental

F =

0,000 −0,000 −0,000

0,000 0,000 0,054

0,001 −0,054 1,000

, (6.7)

la cuál permitirá, junto con los parámetros ya calculados, efectuar la recti�cación de lasimágenes.

6.2.3. Calidad de la calibración.

El programa implementado proporciona un parámetro que da una idea del error co-metido en la calibración y de cómo de exacta es la matriz fundamental calculada. Estevalor se calcula aplicando la restricción epipolar mencionada en la ecuación (3.17) paracada uno de los puntos de las imágenes de calibración. Por cada par de puntos que nocumpla dicha relación, se incrementa el error, así que si todos la cumplieran el error seríade cero. En la práctica se ha observado que calibraciones con un error por debajo de 1son aceptables, mientras que si se supera ese umbral es conveniente recalibrar con otroconjunto de imágenes. Como ejemplo concreto se menciona que los resultados obtenidosen los últimos experimentos del proyecto tenían un error de calibración de 0.46. Ese valor

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

CAPÍTULO 6. RESULTADOS. 78

se considera bastante bueno, pues errores por debajo de 0.5 son difíciles de conseguir de-bido a la precisión del algoritmo de calibración, aún teniendo un conjunto de imágenes decalibración adecuado (muchas imágenes donde el objeto de calibración varíe su posicióny ángulo).

6.2.4. Recti�cación de las imágenes.

La etapa de recti�cación ha sido la clave para lograr un mapa de disparidad con unacalidad aceptable. Una buena recti�cación es fundamental para la búsqueda de correspon-dencias, ya que este proceso analiza �las de píxeles de las imágenes izquierda y derechaasumiendo que se encuentran alineadas. Es extremadamente sensible incluso a diferenciasde pocos píxeles entre un punto y otro de la imagen, y en ese caso lo habitual es que nose encuentren todas las correspondencias o se produzcan falsos positivos. Así pues, paralograr buenos resultados es importante que se hayan tomado muchas imágenes del tablerode tal forma que esté en diferentes ángulos y varíen las distancias a las que se encuentradicho objeto de calibración respecto de las cámaras. En este proyecto se ha logrado unarecti�cación aceptable con unas 30 imágenes (15 por cada cámara), si bien el mejor re-sultado se ha logrado con unas 200 imágenes del tablero (100 por cada cámara) en muydiversas posiciones y distancias. En cualquier caso la calidad de la recti�cación se puedeapreciar mediante una inspección de las imágenes recti�cadas. En concreto las diferenciasentre una buena y una mala recti�cación se pueden ver con exactitud en la Figura 6.2.

Aunque a simple vista parezca tan sencillo como tener un amplio y variado conjunto defotos del objeto de calibración, no siempre ha sido tan fácil y en ocasiones se han producidoresultados extraños como el de la Figura 6.3, apareciendo deformaciones excesivas en lasimágenes recti�cadas. Esto se debe a que en ocasiones el algoritmo de recti�cación (tantoel de Hartley como el de Bouguet) toma como buena una solución degenerada (la solucióna la recti�cación nunca es única). Para solucionar ese problema, se ha recurrido a purgarmanualmente aquellas imágenes de calibración que hacían aparecer ese efecto extraño,con el �n de conseguir una recti�cación aceptable.

6.3. Medidas de distancia y estimación del error.

6.3.1. Estimación del error.

Para poder comprobar la calidad de las medidas del sistema se ha optado por hacervarias medidas a un objeto situado a diferentes distancias del plano formado por lasdos cámaras separadas 13.9 centímetros entre sí. Utilizando un metro se han tomado 20capturas de un panel con soporte, cada una de ellas a una distancia determinada. Unaves estimadas las medidas, se han comparado con las distancias reales, y así se ha podidoanalizar el error del sistema en función de la distancia. Además este análisis se ha utilizado

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

CAPÍTULO 6. RESULTADOS. 79

Figura 6.2: La recti�cación mostrada en la parte derecha puede parecer correcta a primeravista. Sin embargo, si se mira con detenimiento, se puede observar que los píxeles no estánsu�cientemente alineados. Por tanto, habrá que recalibrar el sistema para conseguir unarecti�cación mucho más precisa como la que se muestra en la parte izquierda de esta�gura.

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

CAPÍTULO 6. RESULTADOS. 80

Figura 6.3: La solución calculada por el algoritmo de recti�cación de imágenes no esúnica. Por eso en ocasiones se producen resultados extraños como el de la imagen, dondela imagen izquierda está totalmente deformada. La solución es recalibrar las cámarascon un nuevo conjunto de imágenes, o eliminar aquellas que provocan estas solucionesextrañas.

para comparar dos métodos de cálculo de la disparidad dominante en una región del mapade profundidad. Estos procedimientos son:

1. Histograma: tomando los valores de disparidad de la región de interés del mapa deprofundidad, se genera un histograma. Entonces se selecciona el valor de disparidadmás repetido (el mayor valor del histograma) y a partir de él, calcular la distanciaa la cuál se encuentra el objeto dentro de esa región de la imagen.

2. Media: tomando todos los valores distintos de cero (así se evita desvirtuar el resul-tado por culpa de puntos sin correspondencia) del mapa de disparidad, se calcula lamedia. Ese valor es el que se considera para la estimación de la distancia.

Primeramente se ha realizado este experimento en el exterior de un edi�cio y efectuan-do el método que utiliza la media de las disparidades, obteniéndose los resultados de laFigura 6.4. Al utilizar el método de cálculo por histograma, se han obtenido los resultadosde la Figura 6.5 .

Debido a la apariencia de las dos grá�cas citadas, puede parecer que la media se hacomportado algo mejor que el histograma. No obstante, si se observa la grá�ca de laFigura 6.6 se puede concluir que esto no es cierto. En 10 de las 20 medidas el histogramada un error más pequeño mientras que en las otras 10 es la media quien da una medidamás precisa, por lo que no existen grandes diferencias entre la exactitud que proporcionanambos métodos. Si se supone un límite máximo de error de 1 metro para que la medidasea aceptable, se puede observar que la media supera este umbral por primera vez a partirde la medida 15. Por otra parte, el método por histograma genera un error superior a 1metro en la medida número 12. Con esto se concluye que el método que utiliza la mediapara calcular la disparidad equivalente en una región del mapa de profundidad, es algomás preciso en el primer tramo de medidas.

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

CAPÍTULO 6. RESULTADOS. 81

Figura 6.4: Utilizando la media, la estimación de distancias se comporta muy bien hasta los9 metros, moderadamente bien hasta los 14 metros y a partir de ahí el error va creciendo.

Figura 6.5: Utilizando un histograma, la estimación de distancias se comporta muy bienhasta los 7 metros, moderadamente bien hasta los 11 metros y a partir de ahí el error vacreciendo.

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

CAPÍTULO 6. RESULTADOS. 82

Figura 6.6: El histograma comete errores algo más pequeños que la media si se comparana lo largo de las 20 medidas.

Además se ha querido ver si los cambios de iluminación in�uyen en los resultados.Por eso se ha realizado el experimento anterior en el interior de un edi�cio, donde lailuminación arti�cial se combinaba con la natural que entraba por las ventanas. Trastomar nota de los resultados se ha generado la grá�ca de la Figura 6.7(a) que comparalas medidas en el exterior y en el interior del edi�cio, usando el histograma y la mediade disparidades. En ella se observa que en el interior el sistema se comporta peor que enel exterior. Si además se comparan los dos tipos de medidas realizadas en el interior seconcluye que en este caso, la media da mejores resultados que el histograma.

Finalmente es importante remarcar que se ha comprobado que los cambios que semuestran en los valores de distancia obtenidos cuando se usa el método del histogramade disparidades son más bruscos que cuando se usa la media, en cuyo caso existe unamayor continuidad entre las diferentes distancias estimadas a lo largo de un mismo tramode medidas y por tanto mayor resolución al variar la distancia a la que se encuentran losobjetos de interés.

6.3.2. Secuencias de vídeo.

Hasta ahora se han analizado los resultados de este sistema en situaciones en las quetodos los objetos están estáticos y en las que el par de cámaras también está �jo. Sinembargo en este apartado se analizan las secuencias de imágenes que se obtienen coneste sistema funcionando en movimiento. Se ha utilizado además un detector de vehículos

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

CAPÍTULO 6. RESULTADOS. 83

(a)

(b)

Figura 6.7: La foto de la Figura a) muestra los dos escenarios de iluminación sobre losque se han realizado las medidas. Por otro lado la Figura b) muestra una comparación delos errores cometidos en las medidas efectuadas en el exterior y en el interior del edi�cio.A su vez se comparan los resultados obtenidos usando la media y el histograma de dis-paridades. Conviene observar que también se han representado varias líneas horizontalesque se corresponden con la media de cada uno de los errores.

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

CAPÍTULO 6. RESULTADOS. 84

y personas, con el objetivo de que los resultados no dependan de la forma en la queel usuario marca la región a medir dentro del mapa de disparidad. Para poder apreciardetalladamente lo comentado en esta sección, se invita al lector a visualizar los vídeos quese incluyen en el interior del CD-ROM adjunto a este libro.Las primera secuencia se ha grabado en la misma situación que en el apartado anterior esdecir, a lo largo de una distancia de 20 metros. Algunas capturas se muestran el la Figura6.8. En ella se puede observar como la distancia se va incrementando según la persona quesale en el vídeo se va alejándose de las cámaras, hasta llegar al punto �nal del recorrido.Al contrario que en la medida del error realizada con un objeto estático, en este caso lamedida en el punto más lejano se aproxima mucho a la medida real de 20 metros. Estose debe a que al no ser un objeto plano con pocas texturas, el algoritmo de detección decorrespondencias funciona mejor y por ende la distancia estimada suele ser más precisa.

También se han grabado varias secuencias montando el sistema de adquisición deimágenes dentro de un coche. Algunas capturas de un recorrido grabado en el campus dela Universidad de Alcalá se muestran en la Figura 6.9. Entre ellas hay algunas en las queel mapa de disparidad presenta muy poca calidad y donde predominan regiones negras,lo que indica que no se han encontrado correspondencias en esa zona. Tras observar estehecho en bastantes imágenes de los vídeos que se han grabado, se ha llegado a la conclusiónde que se debe a dos cosas:

1. En el capítulo anterior se comentó que las cámaras no estaban sincronizadas. Apesar de que la conexión Firewire con la que se conectan las cámaras al ordenadores muy rápida, las capturas no se hacen simultáneamente. Por eso en las imágenescorrespondientes a escenas donde predomina el movimiento, es relativamente difícilque este sistema logre generar un mapa de disparidad preciso, ya que las cámarasno están tomando las capturas en el mismo instante.

2. En ocasiones la luz incide diréctamente sobre las lentes y se produce una exposiciónexcesiva que quema ciertas partes de la imagen, impidiendo que el algoritmo dedetección de correspondencias de buenos resultados.

Finálmente se ha tomado una secuencia de imágenes en condiciones de poca lumino-sidad. La Figura 6.10 muestra algunas capturas correspondientes a un vídeo grabado enel interior de un garaje donde la fuente principal de luz eran los faros del vehículo quetrasportaba el sistema. En ellas puede apreciarse que los mapas de disparidad generadosno son tan precisos como los que se muestran en otras secuencias. Esto es debido a quela escasez de luz hace que muchas de las partes de la imagen salgan sin nitidez. En con-secuencia, esta falta de textura hace que el algoritmo de búsqueda tenga di�cultades a lahora de encontrar las correspondencias exactas de puntos.

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

CAPÍTULO 6. RESULTADOS. 85

Figura 6.8: Capturas correspondientes a un vídeo donde se puede ver una persona aleján-dose de las cámaras. La distancia se ha estimado en base a la región proporcionada porel algoritmo de detección de personas.

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

CAPÍTULO 6. RESULTADOS. 86

Figura 6.9: Capturas pertenecientes a un vídeo grabado desde el interior de un vehículoen movimiento. En ellas se puede apreciar la distancia a coches cuya situación ha sidomarcada por un algoritmo de detección.

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

CAPÍTULO 6. RESULTADOS. 87

Figura 6.10: Capturas pertenecientes a un vídeo grabado en el interior de un garaje. Comose puede observar, los mapas de disparidad tienen una calidad inferior que los generadosen situaciones donde la luz es la adecuada.

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

CAPÍTULO 6. RESULTADOS. 88

Fase Tiempo

Detección de las esquinas del damero 0, 05 seg/im

Obtención de los parámetros de calibración 0, 075 seg/im

Cálculo de los mapas de recti�cación 0, 03 seg

Tabla 6.1: Segundos empleados en la ejecución de cada una de las diferentes fases delprograma de calibración.

6.4. Tiempos de ejecución.

A la hora de estudiar el funcionamiento de un sistema como el que aquí se presenta esmuy importante analizar lo que tarda en ejecutarse. Mediante marcas de tiempo incluidasen el código, y tras varias ejecuciones con diferentes sets de imágenes, se han obtenido lostiempos de ejecución del proceso completo y de las diferentes fases que lo componen:

Calibración de las cámaras:

1. La detección automática de las esquinas del tablero tarda 0,05 segundos porimagen.

2. Para el cálculo de los parámetros de calibración (intrínsecos, de distorsión, etc.),de la matriz Fundamental, de la matriz de rotación y del vector de translaciónemplea 0,075 segundos por imagen.

3. El cálculo de los mapas de píxeles que sirven para recti�car las imágenes hatardado 0,03 segundos en el caso del algoritmo de Bouguet y en el de Hartleyeste tiempo ha sido de 0,02 segundos.

4. El tiempo total empleado en la calibración de las dos cámaras ha sido de 56segundos para un total de 164 imágenes (82 por cada cámara). Este resultadoda una velocidad de proceso de 2,92 im/seg.

Como puede deducirse de lo anterior, el tiempo total necesario para la calibraciónno es despreciable. Sin embargo no importa demasiado puesto que esta tarea se hacede forma independiente a la estimación de distancias, y no es indispensable que seejecute siempre que se use el sistema (a no ser que las cámaras se hayan girado omovido, o que su enfoque haya cambiado).Finalmente, en la Figura 6.14, se puede ver el porcentaje del tiempo total ocupacada una de las fases mencionadas.

Estimación de distancias:

1. El tiempo empleado en leer los parámetros de calibración del archivo XMLcreado durante la etapa anterior es de 0,58 segundos de media.

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

CAPÍTULO 6. RESULTADOS. 89

2. La reordenación de los píxeles de cada imagen con el objetivo de alinear sus�las de píxeles y eliminar la distorsión ha ocupado un tiempo de 0,01 segundospor imagen.

3. La búsqueda de correspondencias utilizando el algoritmo de Konolige tardamenos de 0,4 segundo por imagen, mientras que el de Birch�eld utiliza 1,06segundos de media por cada una (ambos con�gurados a máxima resolución).

4. Si se emplea el algoritmo de detección incluido en el sistema, el tiempo em-pleado por cada imagen (de dimensiones 640 × 480) es de 13,5 segundos si sedetectan vehículos y personas conjuntamente. En el caso de que se escoja de-tectar un sólo tipo de objeto ese tiempo se reduce a 7 segundos. Además se hacomprobado que el tiempo empleado en detectar coches y personas se reduce a5 segundos (2,5 segundos si la detección es sólo de coches) al utilizar imágenesde dimensiones 320 × 240 píxeles.

5. El tiempo total empleado en la estimación de distancias varía en función delalgoritmo de búsqueda de correspondencias empleado, y de si se utiliza o noel módulo de detección conjuntamente. Por ello se han realizado las grá�casmostradas en la �guras 6.11(a) y 6.11(b), las cuáles dan una idea del tiempoempleado para cada par de imágenes en función del rango de búsqueda de cadaalgoritmo y de si se usa el módulo de detección de objetos. En cualquier casoen las �guras 6.15 y 6.16 se puede comprobar que el porcentaje de tiempo em-pleado por el algoritmo de detección es mucho más grande que el del algoritmode búsqueda de correspondencias.Además se presentan las �guras 6.12(a) y 6.12(b), que muestran el número deimágenes por segundo que es capaz de procesar cada uno de los algoritmos,teniendo en cuenta si se usa o no la detección de objetos.

La fase de estimación de distancias emplea un tiempo considerable en la búsquedade correspondencias entre imágenes. Si además se usa el algoritmo de detección deimágenes, entonces la velocidad de ejecución viene supeditada a la gran cantidad detiempo que tarda en detectar los objetos.

Tras leer este breve análisis, el autor puede que se plantee el por qué se ha optado�nalmente por usar el algoritmo de Birch�eld si el tiempo que emplea en detectar lascorrespondencias es considerablemente mayor que el empleado por Konolige. Pues bien,la decisión se ha tomado debido a que los mapas de disparidad generados con el algoritmode Birch�eld son mucho más precisos que los que se obtenían con Konolige, en los cuálespredominaban zonas de disparidad nula haciendo difícil su utilización en la estimación dedistancias. Este hecho se puede apreciar en el ejemplo de la Figura 6.13, la cuál muestragrá�camente lo que se acaba de exponer.

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

CAPÍTULO 6. RESULTADOS. 90

(a)

(b)

Figura 6.11: En esta grá�ca se puede observar cómo el algoritmo de Konolige tiene untiempo de ejecución muy pequeño en comparación con el empleado por Birch�eld. Ade-más se puede ver que el tiempo de cómputo de Birch�eld aumenta considerablemente enfunción del rango de búsqueda, mientras que en el de Konolige el incremento en funciónde ese parámetro es casi inapreciable.

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

CAPÍTULO 6. RESULTADOS. 91

(a)

(b)

Figura 6.12: En esta grá�ca se puede observar la evolución de la capacidad de proceso en(imágenes por segundo) de los algoritmos de búsqueda de correspondencias en función delrango de búsqueda.

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

CAPÍTULO 6. RESULTADOS. 92

Fase Tiempo

Lectura de los parámetros de calibración existentes 0, 58 seg

Recti�cación 0, 01/im

Búsqueda de correspondencias (Birch�eld) ' 1, 06 seg/im

Búsqueda de correspondencias (Konolige) 0, 4 seg/im

Detección (coches y personas) ' 13, 5 seg/im

Detección (coches o personas) ' 7 seg/im

Tabla 6.2: Segundos empleados en la ejecución de cada una de las diferentes fases delprograma de estimación de distancias, considerando imágenes de 640 × 480 píxeles.

Figura 6.13: Los mapas que se han generado con el algoritmo de Konolige muestran muchosagujeros por lo que no son adecuados para estimar distancias de en base a regiones dedisparidad.

Figura 6.14: En el grá�co se puede ver como la función de calibración es la que másporcentaje de tiempo emplea por imagen.

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

CAPÍTULO 6. RESULTADOS. 93

Figura 6.15: Porcentaje de tiempo empleado por Konolige en comparación con la detec-ción.

Figura 6.16: Porcentaje de tiempo empleado por Birch�eld en comparación con la detec-ción.

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

Capítulo 7

Conclusiones.

7.1. Conclusiones.

Tras haber realizado numerosas pruebas, obtenido resultados y analizado el conjuntode ellos, se pueden extraer las siguientes conclusiones acerca del sistema de estimación dedistancias desarrollado en este proyecto:

1. El tiempo dedicado a ejecutar las fases correspondientes a la eliminación de la dis-torsión, recti�cación de las imágenes y a la generación del mapa de disparidad eselevado. Si además se usa junto con un detector de objetos como el que se ha in-corporado en este proyecto, ese tiempo crece muchísimo. A excepción de la fase decalibración, el resto de tareas del sistema deben ejecutarse para cada uno de lospares de imágenes adquiridos. En consecuencia y debido a la duración del tiempode ejecución, se concluye que este proyecto no es apto para su utilización en tiemporeal. Este hecho le resta capacidad práctica al sistema, sin embargo se consideraperféctamente válido para procesar vídeos o imágenes en un tiempo aceptable.

2. A través del análisis del error en función de la distancia, se ha demostrado quelas medidas estimadas en la práctica son aceptables. La precisión que proporcionaeste sistema es su�cientemente ajustada como para triangular los objetos de interéscercanos al sistema, y dar una idea de la estructura de la escena situada en el campode visión del mismo.

3. Finálmente se ha comprobado que el uso de un par de cámaras, en conjunción conuna aplicación basada en la teoría de visión estéreo, es una alternativa válida al usode sensores. Tanto los sistemas que usan sensores como el sistema aquí presentado,permiten estimar distancias a determinados objetos. Sin embargo el par de cámarastiene la gran ventaja de poder conocer (a través de un algoritmo de reconocimiento)el tipo de los objetos presentes en el campo de visión, permitiendo discriminar elproceso de medida y tan sólo obtener aquellas distancias que sean de verdaderointerés para la aplicación. Además, gracias a lo anterior, se consigue que el usuario

94

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

CAPÍTULO 7. CONCLUSIONES. 95

Figura 7.1: Este sistema posee dos cámaras integradas, calibradas de fábrica.

del sistema adquiera una idea acerca de la composición de la escena, y no sólo delos datos telemétricos (como ocurriría en el caso de usar sensores únicamente).

7.2. Futuras líneas de trabajo.

En base a las conclusiones anteriores, a algunos de los resultados obtenidos en losexperimentos y a varias ideas que han ido surgiendo a lo largo de la realización de esteproyecto, se procede a listar varias tareas que se deberían seguir en las futuras líneas detrabajo:

1. Sustitución del montaje realizado a partir de dos cámaras individuales, por un sis-tema integrado de cámaras como el de la Figura 7.1. Este tipo de sistemas de visiónestéreo vienen calibrados de fábrica con una excelente precisión. Además presentanuna robustez que hace imposible que se mueva una cámara respecto a la otra y enconsecuencia, el par de cámaras siempre está alineado. Gracias a estas característi-cas la calidad de los mapas de disparidad obtenidos se vería mucho menos afectadapor los errores cometidos en la calibración o por el modo en el que se disponen lascámaras.

2. En el capítulo anterior se mostró que el módulo de detección utilizado tarda variossegundos en realizar su función. Por ello sería adecuado la búsqueda de otros detec-tores que lo hagan en un tiempo más contenido. También sería recomendable que eldetector utilizado fuera más potente y permitiera la detección de un mayor númerode clases de objeto.

3. La búsqueda de correspondencias es un proceso lento que también di�culta que estesistema pueda ejecutarse en tiempo real. Se podrían introducir algunos cambios enla forma en la que se realiza esta tarea. Algunas opciones al respecto son: ejecutarel programa mediante hilos, distribuir los procesos entre varias CPU's (clusteringde PC's), detección previa de bordes que permita disminuir el número de píxeles alos que asignar una correspondencia, etc.

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

CAPÍTULO 7. CONCLUSIONES. 96

4. Re-programación del sistema utilizando las herramientas de desarrollo CUDA crea-das por la compañía Nvidia, las cuáles permiten que los cálculos complejos se realicenen la GPU de la tarjeta grá�ca del ordenador. De esta forma el tiempo de ejecucióndisminuiría notablemente en todas las tareas (detección, calibración, etc.) gracias aluso adicional de los núcleos del procesador grá�co.

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

Bibliografía

[1] Luc Van Gool Andreas Ess, Bastian Leibe. Depth and appearance for mobile sceneanalysis. ICCV 2007, 2007.

[2] Stan Birch�eld and Carlos Tomasi. Depth discontinuities by pixel-to-pixel stereo.IJCV, 1999.

[3] Gary Bradski and Adrian Kaehler. OpenCV: Computer vision with the OpenCV

library. O'Reilly, 2008.

[4] Pedro Felzenszwalb. A discriminatively trained, deformable part model. IEEE, 2008.

[5] Member Guofeng Zhang, Tien-Tsin Wong and Hujun Bao. Consistent depth mapsrecovery from a video sequence. IEEE, 2009.

[6] Zisserman A. Hartley R. Multiple view geometry in computer vision. Cambridge,2003.

[7] Kurt Konolige. Small vision systems: Hardware and implementation. 1997.

[8] Wannes van der Mark and Dariu M. Gavrila. Real-time dense stereo for intelligentvehicles. IEEE Transanctions on intelligent transportation systems, 2006.

[9] Marteen Vergauwen and Luc Van Gool. 3D Acquisition. 2005.

[10] Zhengyou Zhang. A �exible new technique for camera calibration. 1998.

[11] Zhengyou Zhang. Flexible camera calibration by viewing a plane from unknownorientations. 1999.

97