U NIVERSIDAD DE C ANTABRIA         FACULTAD DE C IENCIAS         D PTO . DE M ATEMÁTICAS , E STADÍSTICA Y C OMPUTACIÓNFund...
Índice generalÍndice general                                                                                              ...
ÍNDICE GENERAL    2Bibliografía     43
Índice de figuras 1.1. Durero utilizando una proyección cónica. . . . . . . . . . . . . . . . . . . . . . . . . .          ...
Capítulo 1Introducción.1.1. Comentarios generales.    El sentido de la visión es quizá el más importante de los sentidos h...
1.3 Agradecimientos.                                                                                       5     En el seg...
1.3 Agradecimientos.                                                                                 6Figura 1.1: Durero u...
1.3 Agradecimientos.                                                                                  7Investigación dentr...
Capítulo 2Modelización geométrica.2.1. Introducción.     Pretendemos buscar un modelo matemático para el proceso de formac...
2.1 Introducción.                                                                                  9Figura 2.1: Tres repre...
2.2 Lentes.                                                                                             10                ...
2.3 Cámara pinhole.                                                                                                11     ...
2.4 Modelo geométrico del proceso de formación de la imagen.                                                         12   ...
2.4 Modelo geométrico del proceso de formación de la imagen.                                               13En coordenada...
2.4 Modelo geométrico del proceso de formación de la imagen.                                              14            Fi...
2.4 Modelo geométrico del proceso de formación de la imagen.                                        15                    ...
2.4 Modelo geométrico del proceso de formación de la imagen.                                                              ...
2.4 Modelo geométrico del proceso de formación de la imagen.                                                             1...
2.5 Notas.                                                                                            18                  ...
Capítulo 3Geometría epipolar.3.1. Introducción.    La fotogrametría es la ciencia o técnica cuyo objetivo es el conocimien...
3.2 La restricción epipolar y la matriz esencial.                                                     20                  ...
3.3 Propiedades de la matriz esencial.                                                                                    ...
3.3 Propiedades de la matriz esencial.                                                                                22De...
3.3 Propiedades de la matriz esencial.                                                                                   2...
3.3 Propiedades de la matriz esencial.                                                                        24y, como e2...
Capítulo 4Reconstrucción a partir de dos vistascalibradas.4.1. Introducción.    En el capítulo anterior, hemos visto que l...
4.2 El algoritmo lineal de los ocho puntos: justificación teórica.                                        26               ...
4.2 El algoritmo lineal de los ocho puntos: justificación teórica.                                                 27Lema 4...
4.2 El algoritmo lineal de los ocho puntos: justificación teórica.                                     28Figura 4.2: Cuatro...
4.3 Algoritmo lineal de los ocho puntos.                                                                 29               ...
4.3 Algoritmo lineal de los ocho puntos.                                                                30                ...
4.4 Reconstrucción “euclídea”.                                                                        31algoritmo de los o...
4.5 Implementación en Matlab.                                                                         324.5. Implementació...
4.5 Implementación en Matlab.                                         33   V = V*Rzp;   % break;elseif detu > 0 & detv < 0...
4.5 Implementación en Matlab.                                         34  for j = 1:NPOINTS    % c (a x b) (That*q)’*That*...
4.5 Implementación en Matlab.                                           35   • Matriz antisimétrica.% Dado un vector 3D de...
Capítulo 5Apéndice.5.1. CCD    Un CCD (del inglés Charge-Coupled Device, “dispositivo de cargas (eléctricas) interconectad...
5.2 Correspondencia y emparejamiento de puntos.                                                                           ...
VXC: Computer Vision
VXC: Computer Vision
VXC: Computer Vision
VXC: Computer Vision
VXC: Computer Vision
VXC: Computer Vision
VXC: Computer Vision
Upcoming SlideShare
Loading in...5
×

VXC: Computer Vision

516

Published on

Work for getting the Licenciada en Matemáticas, Especialidad en Estadística y Computación at Universidad de Cantabria

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

  • Be the first to like this

No Downloads
Views
Total Views
516
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

VXC: Computer Vision

  1. 1. U NIVERSIDAD DE C ANTABRIA FACULTAD DE C IENCIAS D PTO . DE M ATEMÁTICAS , E STADÍSTICA Y C OMPUTACIÓNFundamentos matemáticos de la Visión por Computador. T RABAJO DIRIGIDO EN “E STADÍSTICA Y C OMPUTACIÓN ” REALIZADO POR G EMA R. Q UINTANA P ORTILLABAJO LA DIRECCIÓN DEL P ROF. D. F ERNANDO E TAYO G ORDEJUELA .
  2. 2. Índice generalÍndice general 1Índice de figuras 31. Introducción. 4 1.1. Comentarios generales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2. Descripción de la memoria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3. Agradecimientos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52. Modelización geométrica. 8 2.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2. Lentes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3. Cámara pinhole. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4. Modelo geométrico del proceso de formación de la imagen. . . . . . . . . . . . . . . . . 12 2.4.1. Cámara perspectiva ideal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4.2. Cámara con parámetros intrínsecos. . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4.3. Distorsión radial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.5. Notas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183. Geometría epipolar. 19 3.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2. La restricción epipolar y la matriz esencial. . . . . . . . . . . . . . . . . . . . . . . . . 20 3.3. Propiedades de la matriz esencial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214. Reconstrucción a partir de dos vistas calibradas. 25 4.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.2. El algoritmo lineal de los ocho puntos: justificación teórica. . . . . . . . . . . . . . . . . 25 4.3. Algoritmo lineal de los ocho puntos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.4. Reconstrucción “euclídea”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.5. Implementación en Matlab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325. Apéndice. 36 5.1. CCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.2. Correspondencia y emparejamiento de puntos. . . . . . . . . . . . . . . . . . . . . . . . 36 5.3. Vectores y matrices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.4. Movimientos del sólido rígido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.5. Grupos y álgebras de Lie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
  3. 3. ÍNDICE GENERAL 2Bibliografía 43
  4. 4. Índice de figuras 1.1. Durero utilizando una proyección cónica. . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2. Modelo clásico de cámara pinhole. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1. Representaciones de una imagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2. Modelo de lente delgada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3. Cámara pinhole. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4. Modelización de una cámara pinhole. . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.5. Transformación de coordenadas métricas a coordenadas en píxeles. . . . . . . . . . . . . 14 2.6. Transformación de coordenadas 3-D a coordenadas en píxeles. . . . . . . . . . . . . . . 15 2.7. Distorsión radial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.1. Geometría epipolar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2. Restricción epipolar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.1. Proyección sobre E. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.2. Recuperación de p a partir de la matriz esencial. . . . . . . . . . . . . . . . . . . . . . . 28 4.3. Puntos en correspondencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.1. Sensor CCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.2. Correspondencia entre puntos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.3. Movimiento del sólido rígido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.4. Movimiento del sólido rígido entre C y W . . . . . . . . . . . . . . . . . . . . . . . . . 40
  5. 5. Capítulo 1Introducción.1.1. Comentarios generales. El sentido de la visión es quizá el más importante de los sentidos humanos. Es el que nos proporcionade manera instantánea la información sobre el mundo tridimensional que nos rodea. Mundo que está encontinuo cambio el cual asumimos de manera inmediata gracias a un complicado proceso del que apenassomos conscientes: el proceso visual. Lo que busca la Visión por Computador es imitar este hecho. Lograr que los ordenadores sean capa-ces de entender e interpretar información a partir de fotografías o secuencias de vídeo, para una posteriortoma de decisiones. Esta disciplina surgió a mediados del siglo XX y ha experimentado grandes avances en los últimostiempos, gracias al crecimiento exponencial de la velocidad de los procesadores y al aumento de lacapacidad de memoria de los ordenadores. Es un campo de trabajo muy amplio y en auge actualmentepor la gran diversidad de aplicaciones que posee: robótica, medicina, tecnología espacial, industria, etc. Precisamente por todo ello este área está desarrollada, sobre todo, por ingenieros e informáticos, porlo que muchas veces las matemáticas en las que se basa, esto es, la Geometría Proyectiva, la Estadística,la Optimización, el Álgebra Lineal... son usadas como meras herramientas de cálculo, perdiendo partede ese rigor que es necesario para que, a los que nos dedicamos a ellas, nos resulten consistentes. El objetivo de este trabajo es precisamente estudiar las matemáticas que subyacen en el problemade reconstruir un objeto a partir de dos vistas calibradas1 del mismo. Para ello primero realizamos unamodelización geométrica del problema y después ponemos el énfasis en los algoritmos empleados pararesolverlo. A la hora de hacer esto la principal dificultad con el que nos hemos encontrado ha sido que lostextos sobre la materia en cuestión, en su mayoría, están escritos con rigor deficiente en las definicionesy demostraciones, por lo que la primera tarea que hemos llevado a cabo ha sido la traducción al lenguajematemático y la formalización de los conceptos. El nivel de conocimientos del que partimos a la hora de redactar el trabajo es el de la asignatura deGeometría Proyectiva de tercer curso de la Licenciatura en Matemáticas de la Universidad de Cantabria.Todo lo que se haya podido emplear que exceda este nivel es definido en el mismo.1.2. Descripción de la memoria. El trabajo se divide en cinco capítulos. El primero es una mera introducción al tema y el quinto, unapéndice en el que recogemos algunas observaciones y definiciones no incluidas en el texto, para evitaruna excesiva sobrecarga en su lectura. 1 Más adelante explicaremos detalladamente en qué consiste esto.
  6. 6. 1.3 Agradecimientos. 5 En el segundo, comenzamos explicando lo que es una imagen para un ordenador, que no es otracosa que una aplicación lineal asignando a cada punto un valor de gris. A continuación se realiza lamodelización geométrica del proceso de formación de la imagen. Esto es lo que va a sustentar todos losalgoritmos, lo que da solidez a la Visión por Computador y lo que nos va a permitir formalizar el hechoque queremos estudiar. Se emplea el modelo más sencillo de cámara: la cámara pinhole que básicamentees una proyección cónica, de ahí que la Geometría Proyectiva desempeñe un papel fundamental en elcampo de la visión por computador. Dicho papel se pone de manifiesto de forma clara si pensamos en loque es una fotografía, ya que una sola imagen no preserva ni ángulos, ni longitudes, ni paralelismo, esdecir, esencialmente tiene una naturaleza proyectiva. En el capítulo tercero estudiamos la geometría de dos vistas, llamada también geometría epipolar.Conociendo dos vistas de un mismo objeto se pueden realizar dos operaciones básicas en Visión porComputador: (1) calibrar las cámaras con las que se han tomado las imágenes (lo que significa podercalcular sus parámetros intrínsecos, como la distancia focal, factor de escala a la hora del pixelado de laimagen, etc.), y (2) realizar la reconstrucción euclídea del objeto, es decir, hallar sus verdaderas medidas.La realización de estas dos tareas se basa en el cálculo de la matriz esencial (en el caso de vistas cali-bradas) y la matriz fundamental (si no lo están). Matrices que relacionan los parámetros de las cámarasy el movimiento que ha experimentado la cámara entre la toma de una vista y la otra. En nuestro caso,suponemos las vistas calibradas, toda la geometría epipolar quedará codificada por la matriz esencial. Una vez sentadas las bases geométricas, nos centramos en lo principal: la reconstrucción de un objetoa partir de dos vistas calibradas. Es decir, poseemos toda la información sobre los parámetros intrínsecosde la cámara y lo que tenemos que estimar es las matrices de rotación y traslación que describen elmovimiento de la cámara que ha tenido lugar entre las tomas de la primera imagen y la segunda. Unavez que lo hemos conseguido, el llegar a la matriz esencial es un sencillo cálculo, cuya justificación, sinembargo, requiere unos cuantos teoremas descritos en este trabajo. Para ello utilizamos el algoritmo delos ocho puntos que es el que permite recuperar la matriz esencial a partir de ocho correspondenciasentre puntos de ambas imágenes. No nos conformamos únicamente con su implementación sino quejustificamos todos sus pasos, por ejemplo respondiendo a preguntas como ¿por qué ocho puntos?, ¿y porqué hay otro que usa siete puntos?, etc. Preguntas que no son respondidas en los textos que existen sobreel tema, la mayoría de los cuales consisten en una mera concatenación de algorítmos y métodos que sepueden aplicar y que casi siempre funcionan salvo en situaciones “atípicas” que no se concretan muybien porque no existe la definición rigurosa de “situación buena”. Para la implementación de los algoritmos hemos empleado Matlab ya que este mismo software estápreparado para el tratamiento de imágenes y es el más utilizado en las asignaturas de visión por compu-tador que se imparten en cursos de doctorado de la licenciatura de Matemáticas de muchas universidades,así como en estudios de Informática y de Ingeniería. Por último, cabe señalar que al realizar este trabajo nos hemos dado cuenta de cuán estrechamenteligadas están distintas áreas de la matemática y cómo en un sencillo problema pueden aparecer campostan dispares como la Topología Diferencial y la Estadística, por ejemplo. Así que, a modo de conclusiónpodemos afirmar: “Todo lo que se estudia en la Licenciatura sí es importante, es más, nunca sabes cuando lo vas anecesitar.”1.3. Agradecimientos. En primer lugar, mencionar a Laureano González Vega quien nos acompañó en los comienzos deeste proyecto y ayudó a sentar sus bases. En segundo lugar, a la Universidad de Cantabria por la concesión de una beca de Iniciación a la
  7. 7. 1.3 Agradecimientos. 6Figura 1.1: Durero utilizando una proyección cónica (1525). Los pintores del Renacimiento desarrolla-ron métodos sistemáticos, como el que se aprecia en la figura, para determinar la proyección perspectivade paisajes tridimensionales. Figura 1.2: Modelo clásico de cámara pinhole.
  8. 8. 1.3 Agradecimientos. 7Investigación dentro de la cual se ha desarrollado este trabajo. Muchas gracias por permitirme disfrutarde una experiencia tan formativa. Por último, pero no menos importante, dedicar un especial recuerdo a mi director Fernando Etayo,por la gran cantidad de horas y atención que me ha dedicado, y a mi tutor Juan Manuel de Olazábal,quien me prestó parte de su amplia experiencia en redacción.
  9. 9. Capítulo 2Modelización geométrica.2.1. Introducción. Pretendemos buscar un modelo matemático para el proceso de formación de la imagen. La visiónes el problema inverso al proceso de formación de la imagen: la última estudia el paso de objetos aimágenes; mientras que la primera, cómo usar las imágenes para obtener una descripción tridimensionalde los objetos. Por ello, el diseño de algoritmos para visión requiere de un previo desarrollo de un modeloútil del proceso de formación de la imagen. Con útil nos referimos a que sea fácilmente invertible. Emplearemos un modelo clásico de cámara, la cámara pinhole, cuyo estudio y uso se remonta alRenacimiento1 . A pesar de su antigüedad, es una aproximación muy cercana a los fotosensores CCD2actuales. Responde perfectamente a nuestros objetivos, aunque cabe señalar que no resulta adecuado silo que se desea es modelizar sistemas ópticos complejos (con zoom o múltiples lentes). No obstante, no debemos olvidar que la Geometría es sólo una parte del proceso. Para obtener unaimagen no sólo necesitamos saber dónde dibujar los puntos, sino también qué valor de brillo tenemosque asignarlos.Definición 2.1.1. Una imagen es una función I, definida en una región compacta Ω de una superficie,tomando valores en R+ . Es decir, es un array dos-dimensional de brillo3 . En el caso de una cámara Ω es una región plana rectangular ocupada por un medidor fotográfico oun sensor CCD: I : Ω ⊆ R2 → R+ . (x, y) → I(x, y)Una función imagen, I, puede representarse mediante su gráfica o usando una matriz. Una representa-ción diferente de la misma imagen, que es la que comprende el sistema visual humano, es la obtenidagenerando una “foto". Podemos entender una “foto” como una escena distinta de la real que produce enel sensor de imagen (en este caso, el ojo) la misma imagen que la real. En este sentido las “fotos” sonilusiones controladas: son escenas diferentes de la realidad (ya que son planas) que producen en el ojo lamisma impresión que la escena original. Lo que hay que tener en cuenta es que las tres representacionescontienen exactamente la misma información. 1 Ver figuras 1.1 y 1.2. 2 Ver apéndice, sección 5.1, pág. 36. 3 Si es en color sus valores RGB (rojo, verde y azul) se representan en tres arrays como éste.
  10. 10. 2.1 Introducción. 9Figura 2.1: Tres representaciones equivalentes de una misma imagen: como fotografía, como matrizde enteros y como superficie. Aunque a “simple vista” no lo parezca, las tres representaciones guardanexactamente la misma información.
  11. 11. 2.2 Lentes. 10 Figura 2.2: Modelo de lente delgada. La imagen del punto p es el punto x.2.2. Lentes. Una cámara (o sistema óptico) se compone de un conjunto de lentes usadas para producir cambios enla dirección de propagación de la luz (difracción, refracción, reflexión). Nosotros sólo consideraremos elmodelo más simple: las lentes delgadas.Definición 2.2.1. Una lente delgada es un modelo matemático definido por un eje, el eje óptico, y unplano perpendicular al eje, el plano focal, con una apertura centrada en el centro óptico, es decir,la intersección del plano focal con el eje óptico. Consta de dos parámetros la distancia focal, f , y eldiámetro, d. Presenta dos propiedades: todos los rayos que pasan por la apertura paralelamente al eje óptico intersecan al eje óptico a distancia f del centro óptico; los rayos que pasan a través del centro óptico no son desviados.Proposición 2.2.2. La ecuación fundamental de la lente delgada es 1 1 1 + = Z z fDemostración. Sea p ∈ E3 un punto4 no muy lejano del eje óptico y a distancia Z, sobre el eje óptico,del centro óptico, o. Consideramos dos rectas a través de p: una paralela al eje óptico, y otra a través deo (ver figura 2.2). La primera interseca al eje óptico en el foco; la segunda, no se refleja. Sea x el punto donde lasdos rectas se intersecan, y sea z la distancia entre éste y el centro óptico. Descomponiendo cualquierrecta que pase por p en dos “componentes” una paralela al eje óptico y otra a que pase a través de o,obtenemos que todos las rectas ues pasan por p, se intersecan en x al otro lado de la lente. En particular,una recta que pase por x, paralela al eje óptico, debe pasar por p. Usando semejanza de triángulos en laconstrucción llevada a cabo se obtiene la ecuación buscada. 4 Donde E3 representa el espacio euclídeo tridimensional.
  12. 12. 2.3 Cámara pinhole. 11 Figura 2.3: Cámara pinhole.2.3. Cámara pinhole. A continuación pasamos a considerar el modelo de cámara más sencillo que existe. Decimos sencilloporque se modeliza con una proyección cónica. Cabe señalar que ha sido considerado tradicionalmenteya que imita la construcción de las primeras cámaras5 .Si hacemos que la apertura de una lente delgada tienda a cero, estamos forzando a que todas las rectaspasen por el centro óptico, o y, por lo tanto ninguno es desviado. De este modo, un punto p y su imagen,x, están alineados en una recta que pasa por o (ver figura 2.4). Si el punto p tiene coordenadas X = [X, Y, Z]T relativas a la referencia centrada en el centro óptico,o con el eje z siendo el eje óptico de la lente, es inmediato (por semejanza de triángulos), siendo f ladistancia focal, que las coordenadas de p y su imagen x están relacionadas por las ecuaciones: X Y x = −f , y = −f Z ZEl signo negativo de las fórmulas se debe a que si consideramos que el plano imagen está detrás delcentro óptico la imagen se forma invertida (al igual que ocurre en la retina), como se observa en la figura2.3. Para solucionarlo, basta considerar que el plano imagen está delante, cambiando (x, y) por (−x, −y)que es como aparece representado en la figura 2.4. En este caso la imagen del punto p estará dada por X Y x=f , y=f Z ZHemos de señalar que estas ecuaciones simplemente representan una proyección cónica de centro o yeje el plano imagen, π : R3 → R2 ; X → x, escribiremos X = π(x). Notemos que todos los puntos queestán alineados con p y o tienen la misma imagen x = [x, y]T , lo que es lógico ya que representan el mis-mo punto proyectivo6 y tienen las mismas coordenadas homogéneas, es decir, las mismas coordenadasmódulo multiplicación por constante. 5 Ver figura 1.2. 6 Se define un punto proyectivo de un espacio proyectivo P (X), donde X es un espacio vectorial, como el conjunto derectas vectoriales de X.
  13. 13. 2.4 Modelo geométrico del proceso de formación de la imagen. 12 Figura 2.4: Modelización de una cámara pinhole.2.4. Modelo geométrico del proceso de formación de la imagen. Una vez que conocemos en qué punto de la imagen se proyecta cada punto del espacio, podemosreducir el proceso de formación de la imagen a trazar rectas entre puntos tridimensionales y píxeles. Paraestablecer esta correspondencia entre los puntos del espacio tridimensional y sus imágenes proyectadasen un plano imagen dos-dimensional, necesitamos un modelo matemático que tenga en cuenta tres tiposde transformaciones: 1. transformaciones coordenadas entre el sistema de referencia de la cámara (C) y el del mundo (W); 2. paso de coordenadas 3-D a coordenadas 2-D; 3. transformación coordenada entre las posibles elecciones del sistema de referencia de la imagen.Lo que haremos será describir tal proceso de formación de la imagen como una serie de transformacionescoordenadas. Invertir esa cadena de transformaciones es lo que se conoce por “calibración de la cámara”(proceso previo a la reconstrucción de un objeto a partir de dos o más vistas y que no vamos a tratar eneste trabajo, ya que sólo usaremos vistas calibradas).2.4.1. Cámara perspectiva ideal. Consideremos un punto genérico p con coordenadas X0 = [X0 , Y0 , Z0 ]T ∈ R3 relativas al sistemade referencia del mundo7 . Las coordenadas de este mismo punto X = [X, Y, Z]T con respecto al sistemade referencia de la cámara están dadas por una transformación lineal8 g = (R, T ) de X0 : X = RX0 + T ∈ R3 .Adoptando el modelo de cámara pinhole presentado en la sección anterior (ver figura 2.4), es fácil verque el punto X se proyecta en el plano imagen en el punto x f X x= = . y Z Y 7 Normalmente denotaremos con X0 las coordenadas de un punto relativas a la posición inicial del sistema de referenciamóvil de una cámara. 8 Donde R y T son matrices rotación y traslación, respectivamente.
  14. 14. 2.4 Modelo geométrico del proceso de formación de la imagen. 13En coordenadas homogéneas, la relación de semejanza anterior se puede reescribir como:       X x f 0 0 0   y  =  0 f 0 0  Y ,  Z  Z  1 0 0 1 0 1o, lo que es lo mismo,   f 0 0 0 Zx =  0 f 0 0  X 0 0 1 0donde X := [X, Y, Z, 1]T y x := [x, y, 1]T en coordenadas homogéneas. Representaremos la coordenadaZ de p (es decir, su “profundidad”) por un escalar positivo arbitrario λ ∈ R+ , que no es otra cosa que laconstante que se obtiene de deshomogeneizar las coordenadas.La matriz anterior la podemos expresar como producto de dos matrices:      f 0 0 0 f 0 0 1 0 0 0  0 f 0 0  =  0 f 0  0 1 0 0 , 0 0 1 0 0 0 1 0 0 1 0obteniendo dos matrices que llamaremos:     f 0 0 1 0 0 0 Kf :=  0 f 0  ∈ R3×3 , Π0 :=  0 1 0 0  ∈ R3×4 . 0 0 1 0 0 1 0La matriz Π0 se conoce como la matriz de proyección canónica. Sustituyendo las coordenadas de latransformación lineal, tenemos:     X X0  Y  R T  Y0  =  Z0  .     Z  0 1 1 1Y, resumiendo todo, el modelo de una cámara ideal puede ser descrito como:        X0 x f 0 0 1 0 0 0 R T   Y0  λ y  =  0 f 0  0 1 0 0  , 0 1  Z0  1 0 0 1 0 0 1 0 1o, en forma matricial, λx = Kf Π0 X = Kf Π0 gX0 .Si conocemos la distancia focal, f , dividiendo el modelo anterior se reduce a una transformación euclí-dea9 g seguida de una proyección canónica Π0 , es decir, λx = Π0 X = Π0 gX0 9 Transformación lineal que preserva las distancias.
  15. 15. 2.4 Modelo geométrico del proceso de formación de la imagen. 14 Figura 2.5: Transformación de coordenadas métricas a coordenadas en píxeles.2.4.2. Cámara con parámetros intrínsecos. La ecuación del modelo anterior responde a una elección particular del sistema de referencia, lo quese llama “referencia canónica de la retina”, con centro en el centro óptico y con un eje alineado con eleje óptico. En la práctica, cuando se toman imágenes con una cámara digital las medidas se obtienenen términos de píxeles (i, j), con el origen del sistema de coordenadas de la imagen pixelada, situadotípicamente en la esquina superior izquierda de la misma. Para conseguir que el modelo nos sea útil,necesitamos especificar la relación entre el sistema de coordenadas del plano de la retina y el array depíxeles. A la par que encontremos tal relación, descubriremos los denominados parámetros intrínsecosde la cámara, ya que dependen de su geometría y óptica internas. El primer paso consiste en especificar en qué unidades vamos a medir a lo largo de los ejes x ey. Si (x, y) están en unidades métricas (por ejemplo, mm), y (xs , ys ) son versiones a escala de lascorrespondientes coordenadas del píxel, es decir, se les ha aplicado la siguiente transformación: xs sx 0 x = . ys 0 sy y La matriz de la transformación se llama matriz de escalado y depende del tamaño del píxel (enunidades métricas) (ver figura 2.5). Si sx = sy cada píxel es cuadrado, pero esto, en general, no es así,sino que los píxeles son rectangulares. Las coordenadas (xs , ys ) son relativas al punto principal (donde eleje z interseca al plano imagen), mientras que los píxeles (i, j) normalmente se especifican relativos a laesquina superior izquierda. Entonces, lo que necesitamos es trasladar el origen del sistema de referenciaa dicha esquina mediante la transformación: x = xs + ox y = ys + oy ,donde (ox , oy ) son las coordenadas (en píxeles) del punto principal relativas al sistema de referencia dela imagen. Esto se muestra en la figura 2.5.
  16. 16. 2.4 Modelo geométrico del proceso de formación de la imagen. 15 Figura 2.6: Transformación de coordenadas 3-D a coordenadas en píxeles.Todos los pasos que hemos realizado se representan (en coordenadas homogéneas):      x s x 0 ox x x =  y  =  0 sy oy   y  1 0 0 1 1donde x e y son las coordenadas de la imagen actual en píxeles. Esto se ilustra en la figura 2.5. Si lospíxeles no son rectangulares, podemos utilizar una forma más geneal de la matriz de escalado: sx sθ ∈ R2×2 0 sydonde sθ es lo que se denomina “skew factor” (en español diríamos “factor de torcimiento”) y es pro-porcional a cot(θ), donde θ es el ángulo formado por los ejes de la imagen10 xs e ys . La matriz detransformación toma entonces la forma general:   sx sθ ox Ks =  0 sy oy  ∈ R3×3 . 0 0 1En la práctica lo habitual es suponer que sθ = 0. Ahora, combinando el modelo de proyección de la sección precedente con el escalado y la traslaciónobtenemos un modelo más realista de la transformación entre las coordenadas homogéneas de un punto 3-D relativas al sistema de referencia de la cámara y las coordenadas homogéneas de su imagen expresadasen términos de píxeles:         X x sx sθ ox f 0 0 1 0 0 0   y  =  0 s y oy   0 f 0   0 1 0 0   Y   λ  Z  1 0 0 1 0 0 1 0 0 1 0 1 10 Normalmente, el ángulo θ es muy próximo a 90o , y, por lo tanto, sθ es casi cero.
  17. 17. 2.4 Modelo geométrico del proceso de formación de la imagen. 16Nótese que en la ecuación anterior la modelización de una cámara se realiza en dos pasos: El primer paso es una proyección perspectiva con respecto a un sistema normalizado de coorde- nadas11 . Se determina mediante la matriz de proyección estándar Π0 = [I, 0]. El segundo, es una transformación adicional de la imagen del punto que acabamos de obtener en el paso primero, que depende de los parámetros intrínsecos de la cámara: distancia focal f ; los factores de escala sx ,sy y sθ ; y el centro de la imagen (ox , oy ).La segunda transformación queda determinada por el producto de las matrices Ks y Kf :      s x s θ ox f 0 0 f sx f sθ ox K = Ks Kf =  0 sy oy   0 f 0  =  0 f sy oy  0 0 1 0 0 1 0 0 1Esto nos permite escribir la ecuación de proyección como sigue:     X  f sx f sθ ox 1 0 0 0  Y  λx = KΠ0 X =  0 f sy oy   0 1 0 0     Z  0 0 1 0 0 1 0 1donde la matriz constante Π0 representa la proyección perspectiva; la matriz K es la denominada ma-triz de los parámetros intrínsecos o matriz de calibración. Las entradas de esta matriz, es decir, losparámetros intrínsecos, tienen la siguiente interpretación geométrica: ox : coordenada x del punto principal en píxeles, oy : coordenada y del punto principal en píxeles, sx : anchura de un píxel, sy : altura de un píxel, f : distancia focal, σ = sx /sy : razón entre la altura y la anchura de un píxel, f sθ : “torcimiento” del píxel, normalmente cercano a cero. Cuando se conoce la matriz de calibración K, las cordenadas calibradas x de un punto se obtienena partir de las coordenadas en píxeles x del mismo, simplemente invirtiendo la matriz K:     X 1 0 0 0  −1  0 1 0 0  Y   λx = λK x = Π0 X =  Z  0 0 1 0 1Puede ser que conozcamos la matriz K de la cámara o que no. Si no es así, para conocerla, tenemos quellevar a cabo el proceso conocido como calibración12 de la cámara. Resumiendo, la relación geométrica entre un punto de coordenadas X0 = [X0 , Y0 , Z0 ]T relativas ala referencia del mundo y las coordenadas de su imagen x = [x , y , 1]T (en píxeles) depende de: 11 Se considera la distancia focal f = 1. 12 Consiste en la estimación de los parámetros intrínsecos de la cámara a partir de dos o más imágenes. Y es un paso necesariopara extraer información métrica a partir de imágenes y obtener resultados precisos.
  18. 18. 2.4 Modelo geométrico del proceso de formación de la imagen. 17 el movimiento (R, T ) entre el sistema de coordenadas del mundo, W, y de la cámara, C (que es lo que se conoce como parámetros extrínsecos de calibración), la proyección ideal Π0 , y la matriz de calibración K.Así, el proceso de formación de la imagen se modeliza:      X0 f sx f sθ ox 1 0 0 0 R T  Y0  λx = KΠ0 X =  0 f sy oy   0 1 0 0    0 1  Z0  0 0 1 0 0 1 0 1que en forma matricial queda λx = KΠ0 X = KΠ0 gX0 ,o, equivalentemente, λx = KΠ0 X = [KR, KT ]X0 .Llamaremos matriz de proyección y denotaremos Π a la matriz KΠ0 g = [KR, KT ] con lo que laecuación anterior se reduce a λx = ΠX0 = KΠ0 gX0 .Dividiendo por el escalar λ obtenemos las siguientes expresiones para las coordenadas de la imagen(x , y , z ): π T X0 π T X0 x = 1 T , y = 2 T , z = 1, π3 X0 π3 X0donde ΠT , ΠT , ΠT ∈ R4 son las filas de la matriz de proyección Π. 1 2 32.4.3. Distorsión radial. Los parámetros de la matriz K describen distorsiones lineales. Sin embargo, los sistemas ópticosreales suelen presentar desviaciones respecto al modelo proyectivo ideal. Por ejemplo, frecuentementeaparece una deformación radial que hace que las líneas rectas se vean curvadas (ver figura 2.7). Es másgrave en imágenes con un gran campo de visión y se debe a que , dependiendo de la óptica de la cámara,las líneas que unen puntos del objeto con puntos de la imagen pueden cruzar puntos superpuestos conángulos diferentes. El modelo más efectivo para corregirla es: x = xd (1 + a1 r2 + a2 r4 ), , y = yd (1 + a1 r2 + a2 r4 ),(xd , yd ) son las coordenadas de los puntos distorsionados, r2 = x2 + yd y a1 , a2 son parámetros adicio- d 2nales de la cámara que miden el grado de distorsión. Existen diversos algoritmos y paquetes de softwarepara compensar la distorsión radial usando procedimientos de calibración. Otra posibilidad es estimarladirectamente a partir de las imágenes13 . Y una tecera,el empleo de múltiples imágenes en corresponden-cia. Nosotros supondremos la distorsión radial compensada y que una cámara viene descrita símplementepor la matriz K. 13 Para esto, lo más sencillo es minimizar mediante el método de Newton la curvatura de un conjunto de rectas conocidas enla imagen.
  19. 19. 2.5 Notas. 18 Figura 2.7: Imagen distorsionada y corrección de la distorsión.2.5. Notas. 1. Hemos introducido la proyección cónica como modelo de formación de imagen de una cámara pinhole. 2. En el caso ideal, si la matriz de calibración K es la matriz identidad, las coordenadas 3-D de un punto las coordenadas de su imagen son14 : λx = Π0 X = Π0 gX0 , donde λ es un escalar (que indica la “profundidad” del punto) desconocido. 3. Si K no es la identidad, es decir, si las vistas del objeto no son calibradas, tenemos que realizar otra transformación lineal del plano imagen: x = Kx. Así, la transformación total queda: λx = KΠ0 X = KΠ0 gX0 . 14 Usando coordenadas homogéneas.
  20. 20. Capítulo 3Geometría epipolar.3.1. Introducción. La fotogrametría es la ciencia o técnica cuyo objetivo es el conocimiento de las dimensiones y posi-ción de objetos en el espacio, a través de la medida o medidas realizadas sobre una o varias fotografías.Si trabajamos con una foto podemos obtener información en primera instancia sobre la geometría delobjeto, es decir, información bidimensional. Si trabajamos con dos fotos, en la zona común a éstas (zonade solape), podremos tener visión estereoscópica; o dicho de otro modo, información tridimensional. Esoes lo que se conoce como geometría epipolar o geometría de dos vistas: disponemos de dos fotografíasde un mismo objeto, tomadas desde distintos puntos de vista, y queremos determinar la estructura delmismo. El punto proyectado y los dos centros ópticos de las cámaras se disponen como se indica en la figura3.1. Las relaciones geométricas entre los elementos que ahí aparecen pueden describirseese de formaalgebraica mediante una restricción que involucra las posiciones de las cámaras y las coordenadas delas dos imágenes del punto p, x1 , x2 , pero no sus coordenadas tridimensionales. Así, dados suficientespuntos en correspondencia1 , esta restricción puede usarse para recuperar las posiciones de las cámaras.Eso constituye el objetivo de este capítulo. Partiremos de las siguientes hipótesis: disponemos de dos imágenes de la misma escena tomadas desde dos puntos de vista distintos; suponemos las vistas calibradas (la matriz de calibración K es la identidad), es decir, las coorden- das (homogéneas) X de un punto p y las de su imagen x, con respecto al sistema de referencia de la cámara, están relacionadas por: λx = Π0 X, donde Π0 = [I, 0]; la escena es estática, es decir, no contiene objetos en movimiento; conocemos las correspondencias entre los puntos.Si x1 , x2 son un par de puntos en correspondecia, ambos son imágenes de un mismo punto, se tendrá queestán relacionados como se describirá en el teorema 3.2.1. 1 Consultar apéndice, sección 5.2, pág. 36
  21. 21. 3.2 La restricción epipolar y la matriz esencial. 20 Figura 3.1: Geometría epipolar.3.2. La restricción epipolar y la matriz esencial. Cada cámara, como vimos en el capítulo anterior, tiene asociado un sistema de referencia, con origeno en el centro óptico y el eje z alineado con el eje óptico. La relación entre las coordenadas de unpunto con respecto a ella y sus coordenadas 3-D con respecto a W , la referencia del “mundo” puedeser expresada mediante un movimiento del sólido rígido2 . Sin pérdida de generalidad, podemos suponerque la referencia W coincide con la de una de las cámaras, y que está relacionada con la posición de lasegunda cámara por una transformación euclídea3 g = (R, T ) ∈ SE(3). Sean X1 y X2 las coordenadas3-D del punto p relativas a las dos referencias de las cámaras, respectivamente; se relacionan mediantela transformación: X2 = RX1 + T.Llamemos x1 , x2 ∈ R3 a las coordenadas homogéneas de la proyección de p en ambos planos imagen.Como Xi = λi xi , i = 1, 2, la relación anterior queda: λ2 x2 = Rλ1 x1 + T.Teorema 3.2.1 (Restricción epipolar). Sean x1 , x2 los dos proyectados del mismo punto p obtenidosa partir de dos posiciones de la cámara relacionadas por la transformación g = (R, T ), donde R ∈SO(3) y T ∈ R3 . Entonces, x2 , T × Rx1 = 0, es decir, xT T Rx1 = 0. 2Demostración. Consideremos la igualdad λ2 x2 = Rλ1 x1 + T, premultiplicamos a ambos lados por T 4 : λ2 T x2 = T Rλ1 x1 . 2 Consultar apéndice, sección 5.4,pág. 39 3 Consultar apéndice, sección 5.4,pág. 39 4 Consultar apéndice, sección 5.3, pág. 38.
  22. 22. 3.3 Propiedades de la matriz esencial. 21Figura 3.2: La restricción epipolar surge a partir de que los puntos en correspondencia están relacionadosmediante una transformación euclídea.Como el vector T x2 = T × x2 es perpendicular al vector x2 , el producto escalar x2 , T x2 = xT T x2 es 2cero, así, multiplicando a la izquierda por xT en ambos lados de la igualdad obtenemos 0 = x2 T Rλ1 x1 2y, dado que λ1 > 05 , podemos dividir y obtener: x2 T Rx1 = 0Nota 3.2.2. La ecuación xT T Rx1 = 0 es denominada restricción epipolar. 2Definición 3.2.3. Dadas dos posiciones distintas de una cámara, relacionadas por la transformacióng = (R, T ) ∈ SE(3) se llama matriz esencial y se denota E la matriz E := T RDefinición 3.2.4. (Elementos de la geometría epipolar)6 . El plano (o1 , o2 , p) determinado por los dos centros de proyección o1 , o2 y el punto p se conoce como plano epipolar7 . Los puntos e1 , e2 son llamados epipolos. ei es el proyectado de oj , i ∈ {1, 2}, i = j con respecto a la cámara con centro oi 8 . El plano epipolar interseca a los planos imagen en dos rectas l1 , l2 : las líneas epipolares.3.3. Propiedades de la matriz esencial. La matriz E = T R ∈ R3×3 contiene la información sobre la posición relativa de las dos cámaras. 5 Nótese que λ1 y λ2 , lo que hemos denominado “escalares de profundidad”, no son más que los factores que resultan de“normalizar” los puntos proyectivos x1 y x2 , entendiendo por esto el que su tercera coordenada sea 1. Proceso siempre posibleya que ésta es distinta de cero porque x1 y x2 no pertenecen al hiperplano del infinito. 6 Ver figura 3.1. 7 Claramente, existe un plano epipolar asociado a cada punto p. 8 Podríamos decir que es el punto donde cada cámara “ve” a la otra.
  23. 23. 3.3 Propiedades de la matriz esencial. 22Definición 3.3.1. Se denomina espacio esencial el conjunto de las matrices esenciales: E := {T R|R ∈ SO(3), T ∈ R3 }.Nota 3.3.2. Obsérvese que el conjunto E tiene estructura de variedad diferenciable.9 No es un grupo deLie porque no satisface los axiomas de grupo: el determinante de una matriz esencial es cero10 . Antes de comenzar con el estudio de la estructura de las matrices esenciales, introduciremos un lemade Álgebra Lineal que nos resultará muy útil.Lema 3.3.3 (El operador gorro). Dado un vector T ∈ R3 y una matriz K ∈ R3×3 , si det(K) = 1 yT = KT, entonces T = K T T K.Demostración. Como K T (.)K y K −1 (.) son aplicaciones lineales de R3 en R3×3 , basta comprobar quelas imágenes de los vectores de la base, [1, 0, 0]T , [0, 1, 0]T , [0, 0, 1]T por ambas aplicaciones son lasmismas. No incluiremos la comprobación que hemos efectuado con Maple por consistir en un simplecálculo.Teorema 3.3.4 (Caracterización de matriz esencial). Una matriz no nula E ∈ R3×3 es una matrizesencial si y sólo si E tiene una descomposición en valores singulares11 (SVD), E = U ΣT con Σ = diag{σ, σ, 0}para σ ∈ R+ y U, V ∈ SO(3).Demostración. En primer lugar, probemos que es condición necesaria. Por definición de matriz esencial,existe al menos un par (R, T ), R ∈ SO(3), T ∈ R3 , tales que T R = E.Sea R0 ∈ SO(3) satisfaciendoR0 T = [0, 0, T ]T . Llamemos a := R0 T ∈ R3 . Como det(R0 ) = 1, por el lema 3.3.3, sabemos queT = R0 aR0 . Entonces, EE T = T RRT T T = T T T = R0 aR0 R0 aT R0 = R0 aaT R0 . Se tiene que T T T T T 2      0 − T 0 0 T 0 0 0 aaT =  T 0 0  − T 0 0 = 0 T 2 0 . 0 0 0 0 0 0 0 0 0Así, el conjunto de valores singulares de la matriz esencial E = T R es { T , T , 0}. Nos resta probar Tque U, V ∈ SO(3). Ya sabemos que E = T R = R0 aR0 R. Sea RZ (θ) la matriz del giro de θ radianesalrededor del eje Z 12 entonces,   0 −1 0 π RZ (+ ) =  1 0 0  . 2 0 0 1 9 Ver apéndice, sección 5.5, pág.42. 10 E = T R, luego det(E) = det(T ) det(R) y det(T ) = 0 por ser una matriz antisimétrica de tamaño n = 3 que es impar. b b b 11 Descomposición en valores singulares (SVD). Sea A ∈ Rm×n con rango p. Además, supongamos, sin pérdida de gene-ralidad, que m ≥ n. Entonces, ∃U ∈ Rm×p con columnas ortonormales, ∃V ∈ Rn×p con columnas ortonormales, ∃Σ ∈ Rp×p , Σ = diag{σ1 , σ2 , . . . , σp } matriz diagonal con σ1 ≥ σ2 ≥ . . . ≥ σp ,tales que A = U ΣV T . 2 3 cos(θ) − sin(θ) 0 12 Es decir, RZ (θ) = 4 sin(θ) cos(θ) 0 5. 0 0 1
  24. 24. 3.3 Propiedades de la matriz esencial. 23Y, por lo tanto,    0 1 0 0 − T 0 π T π π πa = RZ (+ )RZ (+ )a = RZ (+ )  −1 0 0   T 0 0  = RZ (+ )diag{ T , T , 0}. 2 2 2 2 0 0 1 0 0 0Sustituyendo, T π E = T R = R0 RZ (+ )diag{ T , T , 0}R0 R. 2Ahora, para obtener la SVD de E, E = U ΣV T , basta tomar U = RT R (+ π ) y V T = R R. Como 0 Z 2 0hemos construido U y V como producto de matrices de SO(3), (que es un grupo) se tiene que U, V ∈SO(3). Veamos que es condición suficiente. Dada E ∈ R3×3 con SVD E = U ΣV T con U, V ∈ SO(3) yΣ = diag{σ, σ, 0}, σ ∈ R+ , se definen (R1 , T1 ), (R2 , T2 ) ∈ SE(3) como (T1 , R1 ) = (U RZ (+ π )ΣU T , U RZ (+ π )V T ), 2 T 2 π T , U RT (− π )V T ). (T2 , R2 ) = (U RZ (− 2 )ΣU Z 2De la definición es inmediato que T1 R1 = T2 R2 = E. Luego E es una matriz esencial. Hasta ahora, sabemos construir una matriz esencial E dados una matriz de rotación R ∈ SO(3) yun vector de traslación T ∈ R3 , usando que E = T R. El problema inverso, es decir, calcular R y T apartir de la matriz fundamental es menos obvio. En la demostración de la condición de suficiencia en elteorema anterior, hemos empleado la SVD para construir dos soluciones para (R, T ). Pero, ¿serán éstaslas únicas soluciones? Antes de dar respuesta a esta cuestión, en el teorema 3.3.6, necesitamos un lema:Lema 3.3.5. Consideremos una matriz antisimétrica no nula cualquiera T ∈ so(3), con T ∈ R3 . Si Texiste R ∈ SO(3) tal que T R es también antisimétrica, entonces13 R = I o R = euπ , donde u = T . bAdemás, T euπ = −T . bDemostración. Sin pérdida de generalidad, supongamos que T = 1. Como T R es también antisimé- Ttrica, T R = −T R ⇒ RT T T = −T R ⇒ RT −T = −T R ⇒ RT T = T R y, premultiplicandopor R ambos miembros de la igualdad, T = RT R.Como R es una matriz de rotación, podemos expresarla en notación exponencial, R = eωθ , con ω ∈ R3 , b ω = 1, y θ ∈ R; donde ω y θ denotan el eje y el ángulo de giro, respectivamente.Si θ = 0 el lema está probado (porque R = I).Supongamos entonces que θ = 0. Reescribiendo la igualdad anterior tenemos eωθ T eωθ = T . Postmulti- b bplicando por ω, eω θ T eω θ ω = T ω; eω θ ω = ω, luego eω θ T ω = T ω ⇒ eω θ − 1 T ω = 0. Como ω es b b b b bel único autovector asociado al autovalor 1 de la matriz eωθ , y T ω es ortogonal a ω, T ω ha de ser cero14 b TAsí, como T T = 0 y ω = 1, se tiene ω = ± T ; es decir, ω = ±u. R conmuta con T : T = RT R ⇔ TRT = T RT ⇔ RT = −RT ⇔ RT = T R. Usando esto RRT = T ⇔ e2b θ T = T . ωDe acuerdo con la fórmula de Rodrigues15 , tenemos e2b θ = I + ω sin(2θ) + ω 2 (1 − cos(2θ)), ω 13 Denotaremos euθ el giro de eje u y ángulo θ. El porqué se explica en el apéndice, sección 5.5, pág. 5.5. b 14 De lo contrario, se tendría eωθ = 1 lo que es una contradicción, porque habría más autovectores que ω asociados al valor bpropio 1. 15 Ver apéndice, sección 5.4, pág. 39.
  25. 25. 3.3 Propiedades de la matriz esencial. 24y, como e2b θ = I, se sigue ω ω 2 sin(2θ) + ω 3 (1 − cos(2θ)) = 0.Como ω 2 y ω 3 son linealmente independientes,16 como elementos de R9 , ha de ser sin(2θ) = 1 − cos(2θ) = 0.Es decir, θ es igual a 2kπ ó (2k + 1)π, k ∈ Z. De donde R es igual a I ó eωπ . bDos posibles casos: T ω=u= T , entonces eωπ T = −T ; b T ω = −u = − T , entonces eω T = −T . bAmbos casos satisfacen lo pedido.Teorema 3.3.6 (Cálculo de la posición a partir de la matriz esencial). Existen exactamente dos po-siciones relativas (R, T ) con R ∈ SO(3) y T ∈ R3 correspondientes a una matriz esencial no nulaE ∈ E.Demostración. Supongamos que (R1 , T1 ), (R2 , T2 ) ∈ SE(3) son dos soluciones de la ecuación T R = TE. Entonces, se tiene T1 R1 = T2 R2 ⇔ T1 = T2 R2 R1 . Como T1 , T2 son matrices antisimétricas y T es una matriz de rotación, por el lema 3.3.5, se tienen dos casos excluyentes:R2 R1 (R2 , T2 ) = (R1 , T1 ), T1 (R2 , T2 ) = (eu1 π R1 , −T1 ), con u1 = b T1 .Así, dada una matriz esencial, E, hay únicamente dos pares (R, T ) ∈ SO(3), tales que T R = E. Másaún, si E = U ΣV es la factorización SVD de E, con U, V ∈ SO(3), las soluciones vienen dadas por lasiguiente fórmula17 (T1 , R1 ) = (U RZ (+ π )ΣU T , U RZ (+ π )V T ), 2 T 2 (T2 , R2 ) = (U RZ (− π )ΣU T , U RZ (− π )V T ). 2 T 2 Sea ω = [a, b, c]T , entoces 16 −(c2 + b2 ) 2 3 2 3 2 3 0 −c b ab ac 0 c −b 2 3ω=4 cb 0 a 5, ω =4 b ab −(c + a2 ) 2 bc 5, ω = 4 −c b 0 a 5 = −b . ω −b a 0 ac bc −(b2 + a2 ) b −a 0 17 Recordemos que RZ (θ) := ee3 θ , con e3 = [0, 0, 1]T ∈ R3 . b
  26. 26. Capítulo 4Reconstrucción a partir de dos vistascalibradas.4.1. Introducción. En el capítulo anterior, hemos visto que los puntos en correspondencia verifican la restricción epi-polar. Lo que perseguimos es determinar la posición relativa de las cámaras dadas dos imágenes de unamisma escena. En este capítulo explicaremos cómo resolver este problema. Se hará en dos pasos: prime-ro, hallaremos la matriz E a partir de un número1 de puntos en correspondencia; después basta calcularlas matrices R y T dada E. Sin embargo, la matriz que obtendremos como solución usando los puntosen correspondencia puede no ser una matriz esencial, por lo que necesitaremos tomar la matriz esencialmás próxima a ella, proyectándola sobre el espacio de las matrices esenciales, previamente al cálculo dela posición relativa.Aunque el algoritmo que proponemos aquí es poco óptimo si los datos presentan ruido, lo hemos elegidoporque es el que mejor ilustra la estructura geométrica del espacio de las matrices esenciales.4.2. El algoritmo lineal de los ocho puntos: justificación teórica.   e11 e12 e13Definición 4.2.1. Sea E = T R una matriz esencial , con coeficientes E =  e21 e22 e23  , llama- e31 e32 e33mos E S al vector E S = [e , e , e , e , e , e , e , e , e ] ∈ R9 . Definimos la norma de Frobe- 11 12 13 21 22 23 31 32 33nius de una matriz E como E S 2 . Se denotará E f .Nota 4.2.2. Es decir, tomamos la norma euclídea del vector E S asociado a la matriz E = (eij ) ∈ R9×9 , E f = ES 2 = 2 i,j eij , lo que equivale a E f = traza(EE T ).Definición 4.2.3. Sean x1 = [x1 , y1 , z1 ]T y x2 = [x2 , y2 , z2 ]T vectores en R3 se define el producto deKronecker como x1 ⊗ x2 = [x1 x2 , x1 y2 , x1 z2 , y1 x2 , y1 y2 , y1 z2 , z1 x2 , z1 y2 , z1 z2 ]T ∈ R9 . Denotaremos el producto de Kronecker a := x1 ⊗ x2 . Con estas notaciones podemos reescribir larestricción epipolar, xT Ex1 = 0, así: 2 aT E S = 0 1 Ya se verá cuál es y por qué.
  27. 27. 4.2 El algoritmo lineal de los ocho puntos: justificación teórica. 26 Figura 4.1: Proyección sobre E: E ∈ E es la matriz esencial más próxima a F .Definición 4.2.4. Dado un conjunto de pares de puntos de la imagen en correspondencia (xj , xj ), j = 1 21, 2, . . . n, se define la matriz X ∈ Rn×9 asociada X := [a1 , a2 , . . . , an ]T ,donde la j-ésima fila aj es el producto de Kronecker del par (xj , xj ). 1 2 Si los datos no presentan ruido, el vector E S cumple X E S = 0. A partir de este sistema linealobtenemos E S . Como E es una matriz homogénea, para resolverlo el rango de X ha de ser 8, por lo quenecesitamos ocho pares de puntos en correspondencia. Lo habitual, como las correspondencias suelen tener errores, es que el sistema no tenga solución. Enese caso, se aplica el método de los mínimos cuadrados: tomamos E S tal que minimice la función deerror2 X E S 2 . Otra situación que puede darse es que el rango de X sea menor que ocho a pesar de que tengamosmás de nueve correspondencias. Esto es debido a que hay menos de ocho puntos en posición general3 .En este caso el problema tiene soluciones múltiples. Sin embargo, aun sin ruido, para que un vector E S sea solución de nuestro problema, no es suficientecon que esté en el núcleo de X . De hecho, tiene que satisfacer una restricción adicional: que su formamatricial E sea una matriz esencial. Para solucionarlo lo que haremos será primero calcular el núcleode X obteniendo una matriz, digamos F , que probablemente no pertenezca a E; y, en segundo lugar,proyectarla sobre la variedad de las matrices esenciales. Proceso que ilustramos en la figura 4.1. Elsiguiente teorema caracteriza la matriz proyección.Teorema 4.2.5 (Proyección sobre E). Dada una matriz real F ∈ R3×3 con SVD F = U diag{λ1 , λ2 , λ3 }V T ,cumpliendo U, V ∈ SO(3), λ1 ≥ λ2 ≥ λ3 , se tiene que la matriz esencial E ∈ E que minimiza el error E − F 2 viene dada por E = U diag{σ, σ, 0}V T con σ = λ1 +λ2 . f 2Demostración. Sea Σ = diag{σ, σ, 0} fija. Definimos Eσ ⊆ E como el conjunto de las matrices esen-ciales cuya SVD es de la forma U1 ΣV1T , U1 , V1 ∈ SO(3). Para simplificar la notación llamaremosΣλ = diag{λ1 , λ2 λ3 }. Ahora efectuaremos la prueba del teorema en dos pasos.Paso 1. Probaremos que para Σ fijo, la matriz esencial E ∈ EΣ que minimiza el error E − F 2 es de la fforma E = U ΣV T (no tiene por qué ser única). Como E ∈ EΣ , E = U1 ΣV1T ; entonces, 2 Ello se consigue tomando E S el vector propio de X T X que corresponde al menor valor propio. 3 Entendiendo por posición general que cuatro de los ocho puntos formen una referencia proyectiva.
  28. 28. 4.2 El algoritmo lineal de los ocho puntos: justificación teórica. 27Lema 4.2.6. 2 E−F f = Σλ − U T U1 ΣV1T V 2 f.Demostración. E−F 2 = U1 ΣV1T −U Σλ V T 2 = traza[(U1 ΣV1T −U Σλ V T )(V1 ΣU1 −V Σλ U T )] = f f T T U ΣV T V )(Σ − V T V ΣU T U )] = Σ − U T U ΣV T V 2 .traza[(Σλ − U 1 1 λ 1 1 λ 1 1 fDefinimos P := U T U1 , Q := V T V1 ∈ SO(3), que son de la forma:     p11 p12 p13 q11 q12 q13 P =  p21 p22 p23  , Q =  q21 q22 q23  . p31 p32 p33 q31 q32 q33Con esta notación, lema anterior y usando que la traza de A y AT es la misma llegamos a E − F 2 = ftraza[(Σλ − P ΣQT )(Σλ − QΣP T )] = traza(Σ2 − Σλ QΣP T − P ΣQT Σλ + Σ2 ) = traza(Σ2 ) − λ λ2traza(P ΣQT Σλ ) + traza(Σ2 ).Desarrollando el segundo término traza(P ΣQT Σλ ) = σ[λ1 (p11 q11 + p12 q12 ) + λ2 (p21 q21 + p22 q22 )].Por otro lado, como P, Q ∈ SO(3) sus columnas tienen norma a lo sumo uno4 y son ortogonales dos ados, luego p11 q11 + p12 q12 ≤ 1, p21 q21 + p22 q22 ≤ 1.Como Σ y Σλ son fijos y λ1 , λ2 ≥ 0, el error E − F 2 se f minimiza cuando p11 q11 + p12 q12 =p21 q21 + p22 q22 = 1. O sea, cuando P y Q son de la forma   cos(θ) − sin(θ) 0 P = Q =  sin(θ) cos(θ) 0 . 0 0 1Obviamente, P = Q = I es una de las soluciones. Representa el caso U1 = U , V1 = V .Paso 2. Por el Paso 1 necesitamos minimizar la función de error sólo sobre las matrices de la formaU ΣV T ∈ E, donde Σ puede variar. Así hemos reducido el problema a minimizar la función de error 5 2 E−F f = (λ1 − σ)2 + (λ2 − σ)2 + (λ3 − 0)2 . 2λ1 +λ2 Claramente, el mínimo se alcanza en σ = 2 .Nota 4.2.7. El lector se habrá percatado de que en el teorema anterior hemos supuesto que en la SVDde E tanto U como V son matrices de SO(3). Eso no es siempre cierto cuando E se estima a partir dedatos con ruido. De hecho, los algoritmos estándar que computan la factorización SVD no garantizanque las matrices U y V que devuelven, tengan determinante positivo. Sin embargo, nuestra suposición escorrecta porque la matriz E es homogénea y basta cambiarla de signo para que esté en las condicionesdel teorema. Como E es única salvo factor de escala, por convenio se suele tomar la matriz esencial normalizada,esto es, T = E = 1. Cada matriz normalizada, de acuerdo con el teorema 3.3.6, nos proporcianados posibles posiciones relativas (R, T ). Así, a partir de ±E, tenemos cuatro soluciones para (R, T ).El último paso del algoritmos de los ocho puntos consistirá en combinar los signos + y − para obtenertodas las posibles soluciones. 4 Porque det(P ) = det(Q) = 1. La igualdad se sigue de sustituir p = q = 1 y operar: traza(Σ2 ) − 2traza(P ΣQT Σλ ) + traza(Σ2 ) = λ2 + λ2 + λ2 − 5 λ 1 2 32(σλ1 + σλ2 ) + (σ 2 + σ 2 + 0) = λ2 + σ 2 − 2σλ1 + λ2 + σ 2 − 2σλ2 + λ2 . 1 2 3
  29. 29. 4.2 El algoritmo lineal de los ocho puntos: justificación teórica. 28Figura 4.2: Cuatro posibles reconstrucciones de un punto a partir de E. Nótese que sólo una de ellas,(a),satisface que el punto tiene profundidad positiva con respecto a ambas cámaras. Es decir, sólo uno de loscuatro puntos está delante de o1 y o2.Ejemplo 4.2.8 (Ejemplo numérico). Supongamos que   √2 √ 2  cos( π ) 0 sin( π )   4 4 2 0 2 2 R= 0 1 0 = 0 1 0 , T =  0 .   √ √  − sin( π ) 0 cos( π ) 4 4 − 22 0 2 0 2Entonces la matriz esencial es   √ 0 0 0 √ E = TR =  2 0 − 2 . 0 2 0Como T = 2, la matriz E que hemos obtenido no está normalizada. Esto también se aprecia fácilmentea partir de la SVD de E,   √2 √ T 0 − 22   0 0 −1 2 0 0 − 2 E = U ΣV T =  −1 0 0   0 2 0   0 1 0  ,   √ √ 2 0 1 0 0 0 0 2 0 − 22donde los valores singulares no nulos toman el valor 2 en vez de 1. Normalizar E es equivalente asustituir la matriz Σ anterior por Σ = diag{1, 1, 0}.Ahora es fácil calcular las cuatro posibles descomposiciones (R, T ) para E
  30. 30. 4.3 Algoritmo lineal de los ocho puntos. 29  √ √  2 2   2 0 2 0 0 0 1. U RZ ( π )V T =  √ T 0 −1 0 , U RZ ( π )ΣU T =  0 0 1  ;   2 √ 2 2 0 − 22 0 −1 0 2  √ √  2 2   2 0 2 0 0 0 2. U RZ ( π )V T =  √ T 0 −1 0  , U RZ (− π )ΣU T =  0 0 −1  ;   2 √ 2 2 2 0 − 22 0 1 0  √ √  2 2   2 0 2 0 0 0 3. U RZ (− π )V T =  T 0 1 0 , U RZ ( π )ΣU T =  0 0 −1  ;   2 √ √ 2 − 22 0 2 2 0 1 0  √ √  2 2   2 0 2 0 0 0 4. U RZ (− π )V T =  T 0 1 0 , U RZ ( π )ΣU T =  0 0 1  .   2 √ √ 2 − 22 0 2 0 −1 0 2La tercera solución es exactamente el movimiento original (R, T ) excepto porque la traslación, T , estánormalizada. Una vez que hemos terminado con las bases teóricas, vamos a describir cómo actúa el algoritmolineal de los ocho puntos.4.3. Algoritmo lineal de los ocho puntos.Dado un cojunto de correspondencias entre las dos imágenes (xi , xj ), j = 1, 2, . . . , n (n ≥ 8), elalgoritmo devuelve (R, T ) ∈ SE(3), tales que xjT T Rxj = 0, 2 1 j = 1, 2, . . . , n. 1. Cálculo de una aproximación de la matriz esencial. Construir X = [a1 , a2 , . . . , an ]T ∈ Rn×9 a partir de las correspondencias xj y xj como se hizo en 1 2 el teorema 4.2.5: aj = xj ⊗ xj ∈ R9 . 1 2 Encontrar el vector E S ∈ R9 de norma 1 tal que X E S se minimimice como sigue: calcular la SVD de X = UX ΣX VX y definir E S la novena columna de VX . Calcular la matriz asociada a E S , T E. (Esta matriz, en general, no pertenecerá a E.) 2. Proyección sobre E. Descomponer la matriz E, calculada a partir de los datos, en valores singulares E = U diag{σ1 , σ2 σ3 }V T , donde σ1 ≥ σ2 ≥ σ3 ≥ 0 y U, V ∈ SO(3). En general, como E puede no ser una matriz esencial, σ1 = σ2 y σ3 = 0. Pero su proyección sobre E (normalizada6 ) es de la forma U ΣV T , con Σ = diag{1, 1, 0}. 6 Tomando T = E = 1
  31. 31. 4.3 Algoritmo lineal de los ocho puntos. 30 Figura 4.3: Ocho parejas de puntos en correspondencia. 3. Recuperación de la posición relativa. A partir de la SVD de la proyección, calculamos R y T como sigue: π π T R = U RZ (± )V T ; T = U RZ (± )ΣU T , 2 2   0 ±1 0 donde RZ (± π ) =  1 0 0  . T 2 0 0 1A continuación, realizaremos algunos comentarios generales sobre el algoritmo propuesto: • Número de puntos. Se toman ocho puntos por simplicidad en la presentación del algoritmo. Enrealidad, la matriz E (como función de (R, T )) tiene sólo cinco grados de libertad: tres para la rotacióny dos para la traslación. Usando propiedades algebraicas de E, puede reducirse el número de puntos.Por ejemplo, como det(E) = 0, podemos exigir que rango(X ) = 7 (en vez de 8) y encontrar dos solu-ciones E1 y E2 ∈ R9 del núcleo de X . De hecho, existe un algoritmo lineal que sólo usa seis puntos, S Spero emplea propiedades algebraicas de la matriz esencial más complicadas. Esto no debería resultarnossorprendente, ya que Kruppa (1913) probó que sólo se necesitan cinco puntos en posición general pararecuperar (R, T ). Se prueba que hay hasta diez soluciones (posiblemente complejas), aunque no puedenobtenerse de forma cerrada. Además, para algunos movimientos especiales, como los movimientos pla-nos, sólo se necesitan cuatro puntos para calcular E. • Número de soluciones. Tanto E como −E satisfacen las mismas restricciones epipolares, luegoen general tendremos 2 × 2 = 4 posibles soluciones para (R, T ). Para conseguir unicidad en la soluciónse suele tomar la única de ellas que hace que las “profundidades” de los puntos 3-D sean positivas conrespecto a los dos sistemas de referencia de las cámaras. Es decir, tres de las cuatro soluciones son físi-camente imposibles y se descartan. • Posición relativa. En todos nuestros cálculos hemos asumido que E = 0, lo que nos permite po-der normalizar esta matriz. De la definición de matriz esencial se sigue que E = 0 ⇔ T = 0. Así, el
  32. 32. 4.4 Reconstrucción “euclídea”. 31algoritmo de los ocho puntos requiere que T = 0. En la práctica, debido al ruido en los datos, el algo-ritmo puede dar una respuesta incluso aunque el movimiento sea una rotación pura. Se ha comprobadoexperimentalmente que en estos casos, si hay suficiente ruido, (por la traslación ficticia que se crea) elalgoritmo puede devolver una correcta estimación de R.4.4. Reconstrucción “euclídea”. El algoritmo de los ocho puntos que hemos descrito usa como input un conjunto de ocho o máspuntos en correspondencia y devuelve la posición relativa (rotación y traslación) entre las dos cámarassalvo factor de escala α ∈ R+ . Sin pérdida de generalidad, podemos suponer que α = 1, lo que equivalea normalizar el vector de traslación. En estas condiciones, la posición relativa y las correspondenciasentre los puntos se pueden utilizar para recuperar su configuración 3-D, calculando sus “profundidades”con respecto a las referencias de las cámaras. Considérese la ecuación básica del sólido rígido, donde la posición (R, T ) es conocida, salvo factorde escala para T (α). En términos de las coordenadas de las imágenes y de profundidades, está dada por λj xj = λj Rxj + αT, 2 2 1 1 j = 1, 2, . . . , n.Como (R, T ) son conocidos, las ecuaciones anteriores son lineales en los λ’s y α’s, y pueden resolversefácilmente. Para cada punto, λ1 , λ2 son sus profundidades con respecto a la primera y la segunda refe-rencias de las cámaras, respectivamente. Una de ellas es redundante; por ejemplo, si se conoce λ1 , λ2 essimplemente una función de (R, T ). Entonces, podemos eliminar , digamos, λ2 de la ecuación anterior,multiplicando ambos miembros por x2 : λj xj Rxj + αxj T = 0, 1 2 1 2 j = 1, 2, . . . , n.Lo que es equivalente a resolver la ecuación lineal: λj M j λj := xj Rxj , xj T 2 1 2 1 , αdonde M j = xj Rxj , xj T 2 1 2 ∈ R3×2 y λj = [λj , α]T ∈ R2 , para j = 1, 2, . . . , n. Para que tenga 1solución única, la matriz M j necesita tener rango igual a 1. Este caso no se da sólo cuando x2 T = 0, esdecir, cuando el punto p pertenece a la recta que une los centros de las cámaras o1 y o2 . Definimos λ := [λ1 , λ2 , . . . , λn , α]T ∈ Rn+1 y una matriz M ∈ R3n×(n+1) como: 1 1 1   x1 Rx1 0 0 0 0 x1 T  2 1 2 2 2    0 x2 Rx1 0 0 0 x1 T  2  M :=  .. . . .    0 0 . 0 0 .  n−1 n−1 n−1 0 0 0 x2 Rx1 0 x2 T     0 0 0 0 xn Rxn xn T 2 1 2Luego la ecuación Mλ = 0determina todas las profundidades salvo factor de escala.
  33. 33. 4.5 Implementación en Matlab. 324.5. Implementación en Matlab. En esta sección se recogen el código del algoritmo de los ocho puntos y de los algoritmos intermediosa los que llama.• Algoritmo lineal de los ocho puntos.function [T0, R0] = essentialDiscrete(p,q)% estima la posición relativa de las cámaras a partir% de ocho correspondenciasn = size(p); NPOINTS = n(2);% definimos una matriz A tal que A*[v1,v2,v3,s1,s2,s3,s4,s5,s6]’ = 0A = zeros(NPOINTS, 9);if NPOINTS < 9 error(’No hay suficientes datos’) return;endfor i = 1:NPOINTS A(i,:) = kron(p(:,i),q(:,i))’; endr = rank(A);if r < 8 warning(’El rango de la matriz ha de ser 8’) T0 = 0; R = [];end;[U,S,V] = svd(A);% elegir el vector propio que corresponde al valor propio más pequeñoe = V(:,9); e = (round(1.0e+10*e))*(1.0e-10);% matriz esencialE = reshape(e, 3, 3);% así, las cuatro posibilidades sonRzp = [0 -1 0 ; 1 0 0 ; 0 0 1 ]; % rotación(pi/2)Rzn = [0 1 0 ; -1 0 0 ; 0 0 1 ]; % rotación(-pi/2)[U,S,V] = svd(E); S = diag([1,1,0]); detu = det(U); detv = det(V);if detu < 0 & detv < 0 U = -U; V = -V; % break;elseif detu < 0 & detv > 0 S1 = Rzp*S; U = -U*rot_matrix([S1(3,2), S1(1,3) S1(2,1)],pi)*Rzp;
  34. 34. 4.5 Implementación en Matlab. 33 V = V*Rzp; % break;elseif detu > 0 & detv < 0 S1 = Rzp*S; U = U*rot_matrix([S1(3,2), S1(1,3) S1(2,1)],pi)*Rzp; V = -V*Rzp; % break;endR(:,:,1) = (U*Rzp’*V’); Th(:,:,1) = (U*Rzp*S*U’); t(:,1) =[-Th(2,3,1), Th(1,3,1), -Th(1,2,1)]’; [omega(:,1),theta(1)] =exp_matrix(R(:,:,1)); R(:,:,2) = (U*Rzn’*V’); Th(:,:,2) =(U*Rzn*S*U’); t(:,2) = [-Th(2,3,2), Th(1,3,2), -Th(1,2,2)]’;[omega(:,2),theta(2)] = exp_matrix(R(:,:,2));[U,S,V] = svd(-E); S = diag([1,1,0]); detu = det(U); detv = det(V);if detu < 0 & detv < 0 U = -U; V = -V; % breakelseif detu < 0 & detv > 0 S1 = Rzp*S; U = -U*rot_matrix([S1(3,2), S1(1,3) S1(2,1)],pi)*Rzp; V = V*Rzp; % breakelseif detu > 0 & detv < 0 S1 = Rzp*S; U = U*rot_matrix([S1(3,2), S1(1,3) S1(2,1)],pi)*Rzp; V = -V*Rzp; % breakendR(:,:,3) = (U*Rzp’*V’); Th(:,:,3) = U*Rzp*S*U’; t(:,3) =[-Th(2,3,3), Th(1,3,3), -Th(1,2,3)]’; [omega(:,3),theta(3)] =exp_matrix(R(:,:,3)); R(:,:,4) = (U*Rzn’*V’); Th(:,:,4) =U*Rzn*S*U’; t(:,4) = [-Th(2,3,4), Th(1,3,4), -Th(1,2,4)]’;[omega(:,4),theta(4)] = exp_matrix(R(:,:,4));index = 0; posdepth = zeros(1,4);% =============================================================% elegir la solución correcta usando el criterio de profundidad positiva% calculando el volumen, que tiene que ser positivo si los dos escalares de% profundidad tienen el mismo signo y comprobar si uno de los dos tiene% signo positivo% =============================================================for i = 1:4
  35. 35. 4.5 Implementación en Matlab. 34 for j = 1:NPOINTS % c (a x b) (That*q)’*That*R*p > 0 % si las profundidades tienen el mismo signo el producto triple % tiene que ser mayor que 0 volume(j) = triple_product(t(:,i), R(:,:,i)*p(:,j), Th(:,:,i)*q(:,j)); alpha1(j) = -(skew(q(:,j))*t(:,i))’*... (skew(q(:,j))*R(:,:,i)*p(:,j)) ... /(norm(skew(q(:,j))*t(:,i)))^2; alpha2(j) = (skew(R(:,:,i)*p(:,j))*q(:,j))’*... (skew(R(:,:,i)*p(:,j))*t(:,i)) ... /norm(skew(R(:,:,i)*p(:,j))*q(:,j))^2; end vol = sum(sign(volume)); depth = sum(sign(alpha1)); depth2 = sum(sign(alpha2)); % pause posdepth(i) = vol + depth;end % fin de todos los movimientos [val, index] = max(posdepth); index_final = index; T0 = t(:,index); R0 = R(:,:,index); • Matriz de rotación.% calcula una matriz de rotación usando la fórmula de Rodriguesfunction [rot_matrix] = rot_matrix(omega,theta) if nargin == 1 theta = norm(omega); omega = omega/norm(omega);end; omega_hat = [0 -omega(3) omega(2); omega(3) 0 -omega(1); -omega(2) omega(1) 0 ];norm_omega = norm(omega); if (norm(omega) ~= 0) rot_matrix =diag([1,1,1])+(omega_hat./norm_omega).* sin(norm_omega*theta) ... + ((omega_hat^2)./norm_omega^2) .* (1 - cos(norm_omega*theta));else rot_matrix = diag([1 1 1]); end; • Matriz exponencial.%Toma una matriz de rotación y devuelve el ángulo y el ejefunction[omega, theta] = exp_matrix(R) theta = 0; theta =acos((R(1,1) + R(2,2) + R(3,3)-1)/2);if theta ~= 0 omega = 1/(2*sin(theta))*[R(3,2)-R(2,3) R(1,3)-R(3,1)R(2,1)-R(1,2)]’; else omega = [1 0 0]’; theta = 0;%error(’ Rotation matrix arbitrary’);end
  36. 36. 4.5 Implementación en Matlab. 35 • Matriz antisimétrica.% Dado un vector 3D devuelve su matriz antisimétrica asociadafunction S_hat = skew(S)S_hat = zeros(3,3);S_hat(1,2) = - S(3); S_hat(1,3) = S(2); S_hat(2,3) = - S(1);S_hat(2,1) = S(3); S_hat(3,1) = - S(2); S_hat(3,2) = S(1); • Producto triple.% producto triple de tres vectores (a x b) c% para calcular el volumen del paralelepípedo asociadofunction[volume] = triple_product(a,b,c) volume = c(1)*(a(2)*b(3) -b(2)*a(3)) + c(2)*(a(3)*b(1) - b(3)*a(1)) + ... c(3)*(a(1)*b(2) - b(1)*a(2));
  37. 37. Capítulo 5Apéndice.5.1. CCD Un CCD (del inglés Charge-Coupled Device, “dispositivo de cargas (eléctricas) interconectadas”)es un circuito integrado que contiene un número determinado de condensadores enlazados o acoplados.Bajo el control de un circuito interno, cada condensador puede transferir su carga eléctrica a uno o avarios de los condensadores que estén a su lado en el circuito impreso. La alternativa digital a los CCDson los dispositivos CMOS (Complementary Metal Oxide Semiconductor) utilizados en algunas cámarasdigitales y en numerosas Webcam. En la actualidad, los CCD son mucho más populares en aplicacionesprofesionales y en cámaras digitales. Popularmente, el término CCD es conocido por ser uno de los elementos principales de las cámarasfotográficas y de video digitales. En éstas, el CCD es el sensor con diminutas células fotoeléctricas queregistran la imagen. Desde allí la imagen es procesada por la cámara y registrada en la tarjeta de memoria. La capacidad de resolución o detalle de la imagen depende del número de células fotoeléctricas delCCD, que se expresa en píxeles. Cuantos más píxeles, mayor es la resolución. Hoy en día, las cámarasfotográficas digitales incorporan CCDs con capacidades de hasta ciento sesenta millones de píxeles. Los píxeles del CCD registran tres colores diferentes: verde, azul y rojo (abreviado “RGB”, delinglés Red, Green, Blue), por lo cual tres píxeles, uno para cada color, forman un conjunto de célulasfotoeléctricas capaz de captar cualquier color en la imagen. Por esto, la matriz de una imagen captadapor una cámara digital habitual no es una, sino tres, una para cada color.5.2. Correspondencia y emparejamiento de puntos. Supongamos que disponemos de dos imágenes de una escena tomadas desde diferentes puntos devista, por ejemplo las que se aprecian en la figura 5.2. Si consideramos las coordenadas de un punto específico de la imagen izquierda, por ejemplo, el quehemos señalado con el cuadrado blanco. Es inmediato para el observador establecer cuál es su punto“correspondiente” de la imagen de la derecha. Decimos que ambos son correspondientes porque son losproyectados del mismo punto del espacio. Así, el problema de correspondencia consiste en establecerqué punto de la primera imagen se corresponde con qué punto de la segunda, en el sentido de que ambosson la imagen del mismo punto tridimensional. El hecho de que el ser humano sea capaz de resolver este problema de forma tan fácil no nos de-bería hacer pensar que el proceso es trivial. Al contrario, los humanos utilizamos una gran cantidad deinformación a la hora de establecer las correspondencias, realizamos un análisis de las estructuras de laimagen, cómo están dispuestas, cuáles son próximas o colindantes, etc. Para darse cuenta de esto basta
  38. 38. 5.2 Correspondencia y emparejamiento de puntos. 37 Figura 5.1: Sensor CCD.intentar estalecer una correspondencia con sólo mirar las dos pequeñas regiones que quedan enmarcadasdentro de la circunferencia y el cuadrado de la figura 5.2. Lo que hace el ordenador es parecido a esto. En los sistemas estéreo (y entre parejas de imágenes en las cuales la distancia del punto fijo a lascámaras es mucho mayor que la distancia entre los centros de las cámaras) se verifican dos hipótesisbásicas1 : 1. muchos puntos de la escena son visibles en ambas imágenes, 2. las regiones que se corresponden son similares.Por lo tanto, podemos mirar el problema de la correspondencia como un problema de búsqueda: dadoun elemento en la imagen izquierda, buscamos el elemento correspondiente en la imagen derecha. Estoconlleva dos decisiones: ¿Que elementos de las imágenes emparejar? ¿Que medida de similitud se debe adoptar?Para responder a estas preguntas existen numerosos algoritmos de correspondencias, que emplean técni-cas de Estadística y de Optimización, y que podríamos dividir en dos tipos2 : 1. basados en correlación: los elementos a emparejar son ventanas de la imagen de tamaño fijo, y el criterio de similitud es una medida de la correlación entre las ventanas en las dos imágenes. 2. basados en características: intentan establecer correspondencias entre conjuntos dispersos de pun- tos de la imagen con las mismas características: esquinas, bordes...Existen numerosos algoritmos para detección de esquinas y bordes y emparejamiento de los puntos. Son los que se conocen como algoritmos de “matching” y “tracking”. En el trabajo hemos supuesto dadas las correspondencias, pero en un problema real lo primero quehabría que hacer es correr estos algoritmos para obtener las correspondencias óptimas. 1 En general, sin embrago, ambas hipótesis pueden ser falsas y el problema de la correspondencia puede muy difícil. 2 “A grosso modo”.

×