SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
U NIVERSIDAD DE C ANTABRIA
         FACULTAD DE C IENCIAS
         D PTO . DE M ATEMÁTICAS , E STADÍSTICA Y C OMPUTACIÓN




Fundamentos 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 ORTILLA
BAJO LA DIRECCIÓN DEL P ROF. D. F ERNANDO E TAYO G ORDEJUELA .
Índice general

Índice general                                                                                                                                         1

Índice de figuras                                                                                                                                       3

1. Introducción.                                                                                                                                       4
   1.1. Comentarios generales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                   4
   1.2. Descripción de la memoria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                   4
   1.3. Agradecimientos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                   5

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

3. 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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                   21

4. 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. . . . . . . . . . . . . . . . . .                    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   32

5. 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
ÍNDICE GENERAL    2


Bibliografía     43
Í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
Capítulo 1

Introducció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 proporciona
de manera instantánea la información sobre el mundo tridimensional que nos rodea. Mundo que está en
continuo cambio el cual asumimos de manera inmediata gracias a un complicado proceso del que apenas
somos 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 posterior
toma de decisiones.
    Esta disciplina surgió a mediados del siglo XX y ha experimentado grandes avances en los últimos
tiempos, gracias al crecimiento exponencial de la velocidad de los procesadores y al aumento de la
capacidad de memoria de los ordenadores. Es un campo de trabajo muy amplio y en auge actualmente
por 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, por
lo 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 parte
de 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 problema
de reconstruir un objeto a partir de dos vistas calibradas1 del mismo. Para ello primero realizamos una
modelización geométrica del problema y después ponemos el énfasis en los algoritmos empleados para
resolverlo. A la hora de hacer esto la principal dificultad con el que nos hemos encontrado ha sido que los
textos sobre la materia en cuestión, en su mayoría, están escritos con rigor deficiente en las definiciones
y demostraciones, por lo que la primera tarea que hemos llevado a cabo ha sido la traducción al lenguaje
matemá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 de
Geometrí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, un
apéndice en el que recogemos algunas observaciones y definiciones no incluidas en el texto, para evitar
una excesiva sobrecarga en su lectura.
  1
      Más adelante explicaremos detalladamente en qué consiste esto.
1.3 Agradecimientos.                                                                                       5


     En el segundo, comenzamos explicando lo que es una imagen para un ordenador, que no es otra
cosa que una aplicación lineal asignando a cada punto un valor de gris. A continuación se realiza la
modelización geométrica del proceso de formación de la imagen. Esto es lo que va a sustentar todos los
algoritmos, lo que da solidez a la Visión por Computador y lo que nos va a permitir formalizar el hecho
que queremos estudiar. Se emplea el modelo más sencillo de cámara: la cámara pinhole que básicamente
es una proyección cónica, de ahí que la Geometría Proyectiva desempeñe un papel fundamental en el
campo de la visión por computador. Dicho papel se pone de manifiesto de forma clara si pensamos en lo
que es una fotografía, ya que una sola imagen no preserva ni ángulos, ni longitudes, ni paralelismo, es
decir, 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 por
Computador: (1) calibrar las cámaras con las que se han tomado las imágenes (lo que significa poder
calcular sus parámetros intrínsecos, como la distancia focal, factor de escala a la hora del pixelado de la
imagen, 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ámaras
y 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 objeto
a partir de dos vistas calibradas. Es decir, poseemos toda la información sobre los parámetros intrínsecos
de la cámara y lo que tenemos que estimar es las matrices de rotación y traslación que describen el
movimiento de la cámara que ha tenido lugar entre las tomas de la primera imagen y la segunda. Una
vez que lo hemos conseguido, el llegar a la matriz esencial es un sencillo cálculo, cuya justificación, sin
embargo, requiere unos cuantos teoremas descritos en este trabajo. Para ello utilizamos el algoritmo de
los ocho puntos que es el que permite recuperar la matriz esencial a partir de ocho correspondencias
entre puntos de ambas imágenes. No nos conformamos únicamente con su implementación sino que
justificamos todos sus pasos, por ejemplo respondiendo a preguntas como ¿por qué ocho puntos?, ¿y por
qué hay otro que usa siete puntos?, etc. Preguntas que no son respondidas en los textos que existen sobre
el tema, la mayoría de los cuales consisten en una mera concatenación de algorítmos y métodos que se
pueden aplicar y que casi siempre funcionan salvo en situaciones “atípicas” que no se concretan muy
bien 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 estrechamente
ligadas están distintas áreas de la matemática y cómo en un sencillo problema pueden aparecer campos
tan dispares como la Topología Diferencial y la Estadística, por ejemplo. Así que, a modo de conclusión
podemos afirmar:
     “Todo lo que se estudia en la Licenciatura sí es importante, es más, nunca sabes cuando lo vas a
necesitar.”


1.3. Agradecimientos.
    En primer lugar, mencionar a Laureano González Vega quien nos acompañó en los comienzos de
este 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
1.3 Agradecimientos.                                                                                 6




Figura 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 perspectiva
de paisajes tridimensionales.




                            Figura 1.2: Modelo clásico de cámara pinhole.
1.3 Agradecimientos.                                                                                  7


Investigación dentro de la cual se ha desarrollado este trabajo. Muchas gracias por permitirme disfrutar
de 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.
Capítulo 2

Modelización geométrica.

2.1. Introducción.
     Pretendemos buscar un modelo matemático para el proceso de formación de la imagen. La visión
es el problema inverso al proceso de formación de la imagen: la última estudia el paso de objetos a
imágenes; mientras que la primera, cómo usar las imágenes para obtener una descripción tridimensional
de 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 al
Renacimiento1 . A pesar de su antigüedad, es una aproximación muy cercana a los fotosensores CCD2
actuales. Responde perfectamente a nuestros objetivos, aunque cabe señalar que no resulta adecuado si
lo 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 una
imagen no sólo necesitamos saber dónde dibujar los puntos, sino también qué valor de brillo tenemos
que 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 o
un 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 obtenida
generando una “foto". Podemos entender una “foto” como una escena distinta de la real que produce en
el sensor de imagen (en este caso, el ojo) la misma imagen que la real. En este sentido las “fotos” son
ilusiones controladas: son escenas diferentes de la realidad (ya que son planas) que producen en el ojo la
misma impresión que la escena original. Lo que hay que tener en cuenta es que las tres representaciones
contienen 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.
2.1 Introducción.                                                                                  9




Figura 2.1: Tres representaciones equivalentes de una misma imagen: como fotografía, como matriz
de enteros y como superficie. Aunque a “simple vista” no lo parezca, las tres representaciones guardan
exactamente la misma información.
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 en
la dirección de propagación de la luz (difracción, refracción, reflexión). Nosotros sólo consideraremos el
modelo 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 un
plano 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 el
diá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  f

Demostració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 de
o (ver figura 2.2).
    La primera interseca al eje óptico en el foco; la segunda, no se refleja. Sea x el punto donde las
dos rectas se intersecan, y sea z la distancia entre éste y el centro óptico. Descomponiendo cualquier
recta 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 la
construcción llevada a cabo se obtiene la ecuación buscada.
  4
      Donde E3 representa el espacio euclídeo tridimensional.
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 sencillo
porque se modeliza con una proyección cónica. Cabe señalar que ha sido considerado tradicionalmente
ya 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 rectas
pasen 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 la
distancia focal, que las coordenadas de p y su imagen x están relacionadas por las ecuaciones:
                                                     X                  Y
                                            x = −f     ,     y = −f
                                                     Z                  Z
El signo negativo de las fórmulas se debe a que si consideramos que el plano imagen está detrás del
centro óptico la imagen se forma invertida (al igual que ocurre en la retina), como se observa en la figura
2.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              Z
Hemos de señalar que estas ecuaciones simplemente representan una proyección cónica de centro o y
eje el plano imagen, π : R3 → R2 ; X → x, escribiremos X = π(x). Notemos que todos los puntos que
está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 coordenadas
mó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 de
rectas vectoriales de X.
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, podemos
reducir el proceso de formación de la imagen a trazar rectas entre puntos tridimensionales y píxeles. Para
establecer esta correspondencia entre los puntos del espacio tridimensional y sus imágenes proyectadas
en un plano imagen dos-dimensional, necesitamos un modelo matemático que tenga en cuenta tres tipos
de 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 transformaciones
coordenadas. 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 en
este 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 sistema
de referencia del mundo7 . Las coordenadas de este mismo punto X = [X, Y, Z]T con respecto al sistema
de 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 ver
que 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 referencia
móvil de una cámara.
  8
    Donde R y T son matrices rotación y traslación, respectivamente.
2.4 Modelo geométrico del proceso de formación de la imagen.                                               13


En 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
                                                                1

o, lo que es lo mismo,                                        
                                                       f 0 0 0
                                                Zx =  0 f 0 0  X
                                                       0 0 1 0
donde X := [X, Y, Z, 1]T y x := [x, y, 1]T en coordenadas homogéneas. Representaremos la coordenada
Z de p (es decir, su “profundidad”) por un escalar positivo arbitrario λ ∈ R+ , que no es otra cosa que la
constante 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 0

obteniendo 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 0

La matriz Π0 se conoce como la matriz               de proyección canónica. Sustituyendo las coordenadas de la
transformación lineal, tenemos:
                                                                       
                                  X                                    X0
                                 Y                           R T    Y0 
                                                    =
                                                                      Z0  .
                                                                        
                                 Z                           0 1
                                   1                                   1

Y, 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
                                                                           1

o, 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.
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 que
se llama “referencia canónica de la retina”, con centro en el centro óptico y con un eje alineado con el
eje óptico. En la práctica, cuando se toman imágenes con una cámara digital las medidas se obtienen
en términos de píxeles (i, j), con el origen del sistema de coordenadas de la imagen pixelada, situado
tí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 de
píxeles. A la par que encontremos tal relación, descubriremos los denominados parámetros intrínsecos
de 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 e
y. Si (x, y) están en unidades métricas (por ejemplo, mm), y (xs , ys ) son versiones a escala de las
correspondientes 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 (en
unidades 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 el
eje z interseca al plano imagen), mientras que los píxeles (i, j) normalmente se especifican relativos a la
esquina superior izquierda. Entonces, lo que necesitamos es trasladar el origen del sistema de referencia
a 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 de
la imagen. Esto se muestra en la figura 2.5.
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            1
donde x e y son las coordenadas de la imagen actual en píxeles. Esto se ilustra en la figura 2.5. Si los
píxeles no son rectangulares, podemos utilizar una forma más geneal de la matriz de escalado:
                                                        sx sθ
                                                                     ∈ R2×2
                                                        0 sy
donde 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 de
transformación toma entonces la forma general:
                                                     
                                           sx sθ ox
                                  Ks =  0 sy oy  ∈ R3×3 .
                                           0 0 1
En 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ón
obtenemos 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 expresadas
en 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.
2.4 Modelo geométrico del proceso de formación de la imagen.                                                               16


Nó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    1
Esto 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
                                                                                  1
donde 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, los
pará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 obtienen
a 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
                                                                        1
Puede ser que conozcamos la matriz K de la cámara o que no. Si no es así, para conocerla, tenemos que
llevar 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 a
la 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 necesario
para extraer información métrica a partir de imágenes y obtener resultados precisos.
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
                                                                                                  1
que 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 la
ecuació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 X0
donde ΠT , ΠT , ΠT ∈ R4 son las filas de la matriz de proyección Π.
       1    2    3


2.4.3.     Distorsión radial.
    Los parámetros de la matriz K describen distorsiones lineales. Sin embargo, los sistemas ópticos
reales suelen presentar desviaciones respecto al modelo proyectivo ideal. Por ejemplo, frecuentemente
aparece una deformación radial que hace que las líneas rectas se vean curvadas (ver figura 2.7). Es más
grave 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
                                                                        2

nales de la cámara que miden el grado de distorsión. Existen diversos algoritmos y paquetes de software
para compensar la distorsión radial usando procedimientos de calibración. Otra posibilidad es estimarla
directamente 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ímplemente
por 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 en
la imagen.
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.
Capítulo 3

Geometrí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 del
objeto, es decir, información bidimensional. Si trabajamos con dos fotos, en la zona común a éstas (zona
de solape), podremos tener visión estereoscópica; o dicho de otro modo, información tridimensional. Eso
es lo que se conoce como geometría epipolar o geometría de dos vistas: disponemos de dos fotografías
de un mismo objeto, tomadas desde distintos puntos de vista, y queremos determinar la estructura del
mismo.
    El punto proyectado y los dos centros ópticos de las cámaras se disponen como se indica en la figura
3.1. Las relaciones geométricas entre los elementos que ahí aparecen pueden describirseese de forma
algebraica mediante una restricción que involucra las posiciones de las cámaras y las coordenadas de
las dos imágenes del punto p, x1 , x2 , pero no sus coordenadas tridimensionales. Así, dados suficientes
puntos 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á que
están relacionados como se describirá en el teorema 3.2.1.
  1
      Consultar apéndice, sección 5.2, pág. 36
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 origen
o en el centro óptico y el eje z alineado con el eje óptico. La relación entre las coordenadas de un
punto con respecto a ella y sus coordenadas 3-D con respecto a W , la referencia del “mundo” puede
ser expresada mediante un movimiento del sólido rígido2 . Sin pérdida de generalidad, podemos suponer
que la referencia W coincide con la de una de las cámaras, y que está relacionada con la posición de la
segunda cámara por una transformación euclídea3 g = (R, T ) ∈ SE(3). Sean X1 y X2 las coordenadas
3-D del punto p relativas a las dos referencias de las cámaras, respectivamente; se relacionan mediante
la 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 obtenidos
a 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.
                                                                2

Demostració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.
3.3 Propiedades de la matriz esencial.                                                                                    21




Figura 3.2: La restricción epipolar surge a partir de que los puntos en correspondencia están relacionados
mediante 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
                                                                                              2
cero, así, multiplicando a la izquierda por xT en ambos lados de la igualdad obtenemos 0 = x2 T Rλ1 x1
                                             2
y, dado que λ1 > 05 , podemos dividir y obtener: x2 T Rx1 = 0

Nota 3.2.2. La ecuación xT T Rx1 = 0 es denominada restricción epipolar.
                         2

Definición 3.2.3. Dadas dos posiciones distintas de una cámara, relacionadas por la transformación
g = (R, T ) ∈ SE(3) se llama matriz esencial y se denota E la matriz

                                                         E := T R

Definició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 posible
ya 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.
3.3 Propiedades de la matriz esencial.                                                                                22


Definició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 de
Lie 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 lema
de Á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 y
T = 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 que
las imágenes de los vectores de la base, [1, 0, 0]T , [0, 1, 0]T , [0, 0, 1]T por ambas aplicaciones son las
mismas. No incluiremos la comprobación que hemos efectuado con Maple por consistir en un simple
cálculo.

Teorema 3.3.4 (Caracterización de matriz esencial). Una matriz no nula E ∈ R3×3 es una matriz
esencial 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) satisfaciendo
R0 T = [0, 0, T ]T . Llamemos a := R0 T ∈ R3 . Como det(R0 ) = 1, por el lema 3.3.3, sabemos que
T = 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     0

Así, el conjunto de valores singulares de la matriz esencial E = T R es { T , T , 0}. Nos resta probar
                                                     T
que U, V ∈ SO(3). Ya sabemos que E = T R = R0 aR0 R. Sea RZ (θ) la matriz del giro de θ radianes
alrededor 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
3.3 Propiedades de la matriz esencial.                                                                                   23


Y, 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        0
Sustituyendo,
                                       T          π
                         E = T R = R0 RZ (+ )diag{ T , T , 0}R0 R.
                                                  2
Ahora, para obtener la SVD de E, E = U ΣV      T , basta tomar U = RT R (+ π ) y V T = R R. Como
                                                                       0 Z 2            0
hemos 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    2

De 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) y
un vector de traslación T ∈ R3 , usando que E = T R. El problema inverso, es decir, calcular R y T a
partir de la matriz fundamental es menos obvio. En la demostración de la condición de suficiencia en el
teorema anterior, hemos empleado la SVD para construir dos soluciones para (R, T ). Pero, ¿serán éstas
las ú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
                                                                                              T
existe R ∈ SO(3) tal que T R es también antisimétrica, entonces13 R = I o R = euπ , donde u = T .
                                                                               b

Además, T euπ = −T .
           b

Demostración. Sin pérdida de generalidad, supongamos que T = 1. Como T R es también antisimé-
               T
trica, T R   = −T R ⇒ RT T T = −T R ⇒ RT −T = −T R ⇒ RT T = T R y, premultiplicando
por 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     b

plicando por ω, eω θ T eω θ ω = T ω; eω θ ω = ω, luego eω θ T ω = T ω ⇒ eω θ − 1 T ω = 0. Como ω es
                  b     b             b                  b                   b

el único autovector asociado al autovalor 1 de la matriz eωθ , y T ω es ortogonal a ω, T ω ha de ser cero14
                                                           b
                                                 T
Así, como T T = 0 y ω = 1, se tiene ω = ± T ; es decir, ω = ±u. R conmuta con T : T = RT R ⇔
                                      T
RT = 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
                                  b

propio 1.
  15
     Ver apéndice, sección 5.4, pág. 39.
3.3 Propiedades de la matriz esencial.                                                                        24


y, 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ωπ .
                                                                          b

Dos posibles casos:
                       T
          ω=u=         T   , entonces eωπ T = −T ;
                                       b


                            T
          ω = −u = −        T   , entonces eω T = −T .
                                            b


Ambos 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 nula
E ∈ E.

Demostración. Supongamos que (R1 , T1 ), (R2 , T2 ) ∈ SE(3) son dos soluciones de la ecuación T R =
                                                          T
E. 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ás
aún, si E = U ΣV es la factorización SVD de E, con U, V ∈ SO(3), las soluciones vienen dadas por la
siguiente 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 c
b           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
Capítulo 4

Reconstrucción a partir de dos vistas
calibradas.

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 una
misma 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 calcular
las matrices R y T dada E. Sin embargo, la matriz que obtendremos como solución usando los puntos
en correspondencia puede no ser una matriz esencial, por lo que necesitaremos tomar la matriz esencial
más próxima a ella, proyectándola sobre el espacio de las matrices esenciales, previamente al cálculo de
la posición relativa.
Aunque el algoritmo que proponemos aquí es poco óptimo si los datos presentan ruido, lo hemos elegido
porque 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 e13
Definición 4.2.1. Sea E = T R una matriz esencial , con coeficientes E =  e21 e22 e23  , llama-
                                                                         e31 e32 e33
mos 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 33
nius 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 de
Kronecker 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 la
restricción epipolar, xT Ex1 = 0, así:
                       2
                                           aT E S = 0
  1
      Ya se verá cuál es y por qué.
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 2
1, 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 lineal
obtenemos E S . Como E es una matriz homogénea, para resolverlo el rango de X ha de ser 8, por lo que
necesitamos ocho pares de puntos en correspondencia.
    Lo habitual, como las correspondencias suelen tener errores, es que el sistema no tenga solución. En
ese caso, se aplica el método de los mínimos cuadrados: tomamos E S tal que minimice la función de
error2 X E S 2 .
    Otra situación que puede darse es que el rango de X sea menor que ocho a pesar de que tengamos
má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 suficiente
con que esté en el núcleo de X . De hecho, tiene que satisfacer una restricción adicional: que su forma
matricial E sea una matriz esencial. Para solucionarlo lo que haremos será primero calcular el núcleo
de 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. El
siguiente 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                                                  2

Demostració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
                                                                                         f
forma 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.
4.2 El algoritmo lineal de los ocho puntos: justificación teórica.                                                 27


Lema 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    f

Definimos 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 q33
Con esta notación, lema anterior y usando que la traza de A y AT es la misma llegamos a E − F 2 =
                                                                                              f
traza[(Σλ − 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 a
dos, 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               1
Obviamente, 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 forma
U Σ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 SVD
de E tanto U como V son matrices de SO(3). Eso no es siempre cierto cuando E se estima a partir de
datos con ruido. De hecho, los algoritmos estándar que computan la factorización SVD no garantizan
que las matrices U y V que devuelven, tengan determinante positivo. Sin embargo, nuestra suposición es
correcta porque la matriz E es homogénea y basta cambiarla de signo para que esté en las condiciones
del 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 proporciana
dos 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 obtener
todas 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    3
2(σλ1 + σλ2 ) + (σ 2 + σ 2 + 0) = λ2 + σ 2 − 2σλ1 + λ2 + σ 2 − 2σλ2 + λ2 .
                                     1                 2                   3
4.2 El algoritmo lineal de los ocho puntos: justificación teórica.                                     28




Figura 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 los
cuatro 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
                                                                    2

Entonces la matriz esencial es                         
                                               √ 0
                                                0    0
                                                     √
                                     E = TR =  2 0 − 2 .
                                                0 2  0
Como T = 2, la matriz E que hemos obtenido no está normalizada. Esto también se aprecia fácilmente
a 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 − 22

donde los valores singulares no nulos toman el valor 2 en vez de 1. Normalizar E es equivalente a
sustituir la matriz Σ anterior por Σ = diag{1, 1, 0}.
Ahora es fácil calcular las cuatro posibles descomposiciones (R, T ) para E
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
                                                        2

La 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 algoritmo
lineal 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), el
algoritmo 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
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 1




A 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. En
realidad, la matriz E (como función de (R, T )) tiene sólo cinco grados de libertad: tres para la rotación
y 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     S

pero emplea propiedades algebraicas de la matriz esencial más complicadas. Esto no debería resultarnos
sorprendente, ya que Kruppa (1913) probó que sólo se necesitan cinco puntos en posición general para
recuperar (R, T ). Se prueba que hay hasta diez soluciones (posiblemente complejas), aunque no pueden
obtenerse 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, luego
en general tendremos 2 × 2 = 4 posibles soluciones para (R, T ). Para conseguir unicidad en la solución
se suele tomar la única de ellas que hace que las “profundidades” de los puntos 3-D sean positivas con
respecto 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
4.4 Reconstrucción “euclídea”.                                                                        31


algoritmo 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 comprobado
experimentalmente que en estos casos, si hay suficiente ruido, (por la traslación ficticia que se crea) el
algoritmo 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ás
puntos en correspondencia y devuelve la posición relativa (rotación y traslación) entre las dos cámaras
salvo factor de escala α ∈ R+ . Sin pérdida de generalidad, podemos suponer que α = 1, lo que equivale
a normalizar el vector de traslación. En estas condiciones, la posición relativa y las correspondencias
entre 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 factor
de 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 resolverse
fá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 es
simplemente 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
                                                1

solución única, la matriz M j necesita tener rango igual a 1. Este caso no se da sólo cuando x2 T = 0, es
decir, 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     2

Luego la ecuación
                                                Mλ = 0
determina todas las profundidades salvo factor de escala.
4.5 Implementación en Matlab.                                                                         32


4.5. Implementación en Matlab.
    En esta sección se recogen el código del algoritmo de los ocho puntos y de los algoritmos intermedios
a 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 correspondencias

n = size(p); NPOINTS = n(2);

% definimos una matriz A tal que                   A*[v1,v2,v3,s1,s2,s3,s4,s5,s6]’ = 0

A = zeros(NPOINTS, 9);

if NPOINTS < 9
     error(’No hay suficientes datos’)
     return;
end

for i = 1:NPOINTS
  A(i,:) = kron(p(:,i),q(:,i))’;
  end
r = 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ño
e   = V(:,9); e = (round(1.0e+10*e))*(1.0e-10);
%   matriz esencial
E   = reshape(e, 3, 3);

% así, las cuatro posibilidades son
Rzp = [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;
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;
end

R(:,:,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;
   % 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
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
end

R(:,:,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
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 Rodrigues

function [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 eje

function[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
4.5 Implementación en Matlab.                                           35


   • Matriz antisimétrica.

% Dado un vector 3D devuelve su matriz antisimétrica asociada

function 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 asociado

function[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));
Capítulo 5

Apé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 a
varios de los condensadores que estén a su lado en el circuito impreso. La alternativa digital a los CCD
son los dispositivos CMOS (Complementary Metal Oxide Semiconductor) utilizados en algunas cámaras
digitales y en numerosas Webcam. En la actualidad, los CCD son mucho más populares en aplicaciones
profesionales y en cámaras digitales.
    Popularmente, el término CCD es conocido por ser uno de los elementos principales de las cámaras
fotográficas y de video digitales. En éstas, el CCD es el sensor con diminutas células fotoeléctricas que
registran 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 del
CCD, que se expresa en píxeles. Cuantos más píxeles, mayor es la resolución. Hoy en día, las cámaras
fotográ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”, del
inglés Red, Green, Blue), por lo cual tres píxeles, uno para cada color, forman un conjunto de células
fotoeléctricas capaz de captar cualquier color en la imagen. Por esto, la matriz de una imagen captada
por 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 de
vista, 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 que
hemos 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 los
proyectados del mismo punto del espacio. Así, el problema de correspondencia consiste en establecer
qué punto de la primera imagen se corresponde con qué punto de la segunda, en el sentido de que ambos
son 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 de
información a la hora de establecer las correspondencias, realizamos un análisis de las estructuras de la
imagen, cómo están dispuestas, cuáles son próximas o colindantes, etc. Para darse cuenta de esto basta
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 enmarcadas
dentro 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 las
cámaras es mucho mayor que la distancia entre los centros de las cámaras) se verifican dos hipótesis
bá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: dado
un elemento en la imagen izquierda, buscamos el elemento correspondiente en la imagen derecha. Esto
conlleva 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 que
habrí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”.
5.3 Vectores y matrices.                                                                                 38




Figura 5.2: Los puntos “en correspondencia” de las dos vistas son los proyectados del mismo punto del
espacio.

5.3. Vectores y matrices.
Definición 5.3.1 (Producto vectorial). Dados dos vectores u, v ∈ R3 , su producto vectorial es otro
vector perpendicular a ambos con coordenadas
                                                        
                                           u2 v3 − u3 v2
                                 u × v =  u3 v1 − u1 v3  ∈ R3 .
                                           u1 v2 − u2 v1
Definición 5.3.2 (Matriz antisimétrica). Una matriz A ∈ Rn×n se dice antisimétrica si AT = −A.
Nota 5.3.3 (Propiedades de una matriz antisimétrica). Si A es una matriz antisimétrica real, entonces:
      Todos los valores propios de A son cero o imaginarios puros, es decir, son de la forma iω con
         √
      i = −1 y ω ∈ R.
      Existe una matriz ortogonal V tal que A = V DV T con D matriz diagonal por bloques D =
      diag{A1 , . . . , Am , 0, . . . , 0}, donde cada Ai es una matriz antisimétrica real 2 × 2 de la forma
                                           0 ai
                                 Ai =                 ∈ R2×2 , i = 1, 2, . . . , m.
                                          −ai 0

Definición 5.3.4 (Matriz antisimétrica asociada a un vector). Dado u = [u1 , u2 , u3 ]T ∈ R3 se define
su matriz antisimétrica asociada como la matriz
                                                       
                                         0    −u3 u2
                                 u =  u3       0 −u1  ∈ R3×3 .
                                        −u2 u1      0
Nota 5.3.5. La matriz antisimétrica asociada a un vector es antisimétrica,es decir, uT = −u. Se define
del modo anterior porque si u, v ∈ R3 se tiene que uv = u × v. Si u = 0, el rango de u es dos. También
se satisface que uu = 0 y que uT u = 0, es decir, las columnas y las filas de la matriz u son ortogonales
a u.
VXC: Computer Vision
VXC: Computer Vision
VXC: Computer Vision
VXC: Computer Vision
VXC: Computer Vision
VXC: Computer Vision

Más contenido relacionado

Similar a VXC: Computer Vision

Diseño canónico control automatico
Diseño canónico control automaticoDiseño canónico control automatico
Diseño canónico control automaticoAlejandra Mendoza
 
Calculo vectorial
Calculo vectorialCalculo vectorial
Calculo vectorialmasterkits
 
Peña - Analisis de datos multivariantes
Peña - Analisis de datos multivariantesPeña - Analisis de datos multivariantes
Peña - Analisis de datos multivariantesRobert_Hooke
 
Daniel peña análisis de datos multivariantes
Daniel peña   análisis de datos multivariantesDaniel peña   análisis de datos multivariantes
Daniel peña análisis de datos multivariantesfojeda89
 
7) Irene (2013). Álgebra e Introducción al Cálculo, Católica de Chile.pdf
7) Irene (2013). Álgebra e Introducción al Cálculo, Católica de Chile.pdf7) Irene (2013). Álgebra e Introducción al Cálculo, Católica de Chile.pdf
7) Irene (2013). Álgebra e Introducción al Cálculo, Católica de Chile.pdfJessALZ
 
Fibras opticas
Fibras opticasFibras opticas
Fibras opticasnhanhaboy
 
Estudio de mejora del mantenimiento mediante la aplicación de la distribución...
Estudio de mejora del mantenimiento mediante la aplicación de la distribución...Estudio de mejora del mantenimiento mediante la aplicación de la distribución...
Estudio de mejora del mantenimiento mediante la aplicación de la distribución...Eduardo Romero López
 
Apuntes-MatematicasII
Apuntes-MatematicasIIApuntes-MatematicasII
Apuntes-MatematicasIImarvargas1981
 
Libro Fundamentos-de-la-programacion O.O-Ruiz-Rodriguez-Ricardo.pdf
Libro Fundamentos-de-la-programacion O.O-Ruiz-Rodriguez-Ricardo.pdfLibro Fundamentos-de-la-programacion O.O-Ruiz-Rodriguez-Ricardo.pdf
Libro Fundamentos-de-la-programacion O.O-Ruiz-Rodriguez-Ricardo.pdfJavier Perez
 
Econometria aplicada con gretl
Econometria aplicada con gretlEconometria aplicada con gretl
Econometria aplicada con gretlapuntesdeeconomia
 

Similar a VXC: Computer Vision (20)

Real Surfaces
Real SurfacesReal Surfaces
Real Surfaces
 
Diseño canónico control automatico
Diseño canónico control automaticoDiseño canónico control automatico
Diseño canónico control automatico
 
Rarepaso
RarepasoRarepaso
Rarepaso
 
Rarepaso
RarepasoRarepaso
Rarepaso
 
Calculo vectorial
Calculo vectorialCalculo vectorial
Calculo vectorial
 
Guia_Analisis_Exp.pdf
Guia_Analisis_Exp.pdfGuia_Analisis_Exp.pdf
Guia_Analisis_Exp.pdf
 
Manualscilab 090513151714 Phpapp02
Manualscilab 090513151714 Phpapp02Manualscilab 090513151714 Phpapp02
Manualscilab 090513151714 Phpapp02
 
Peña - Analisis de datos multivariantes
Peña - Analisis de datos multivariantesPeña - Analisis de datos multivariantes
Peña - Analisis de datos multivariantes
 
Daniel peña análisis de datos multivariantes
Daniel peña   análisis de datos multivariantesDaniel peña   análisis de datos multivariantes
Daniel peña análisis de datos multivariantes
 
7) Irene (2013). Álgebra e Introducción al Cálculo, Católica de Chile.pdf
7) Irene (2013). Álgebra e Introducción al Cálculo, Católica de Chile.pdf7) Irene (2013). Álgebra e Introducción al Cálculo, Católica de Chile.pdf
7) Irene (2013). Álgebra e Introducción al Cálculo, Católica de Chile.pdf
 
Fibras opticas
Fibras opticasFibras opticas
Fibras opticas
 
Estudio de mejora del mantenimiento mediante la aplicación de la distribución...
Estudio de mejora del mantenimiento mediante la aplicación de la distribución...Estudio de mejora del mantenimiento mediante la aplicación de la distribución...
Estudio de mejora del mantenimiento mediante la aplicación de la distribución...
 
011 fisica general
011 fisica general011 fisica general
011 fisica general
 
Apuntes-MatematicasII
Apuntes-MatematicasIIApuntes-MatematicasII
Apuntes-MatematicasII
 
Matematicas
MatematicasMatematicas
Matematicas
 
Guia de mate
Guia de mateGuia de mate
Guia de mate
 
GUIA UCV
GUIA UCVGUIA UCV
GUIA UCV
 
Apuntes fi2001rmm201002
Apuntes fi2001rmm201002Apuntes fi2001rmm201002
Apuntes fi2001rmm201002
 
Libro Fundamentos-de-la-programacion O.O-Ruiz-Rodriguez-Ricardo.pdf
Libro Fundamentos-de-la-programacion O.O-Ruiz-Rodriguez-Ricardo.pdfLibro Fundamentos-de-la-programacion O.O-Ruiz-Rodriguez-Ricardo.pdf
Libro Fundamentos-de-la-programacion O.O-Ruiz-Rodriguez-Ricardo.pdf
 
Econometria aplicada con gretl
Econometria aplicada con gretlEconometria aplicada con gretl
Econometria aplicada con gretl
 

Más de Gema R. Quintana

Más de Gema R. Quintana (18)

Pechakucha Congreso DIMA 2018
Pechakucha Congreso DIMA 2018Pechakucha Congreso DIMA 2018
Pechakucha Congreso DIMA 2018
 
Motivos para el uso de Instagram en los Adolescentes
Motivos para el uso de Instagram en los AdolescentesMotivos para el uso de Instagram en los Adolescentes
Motivos para el uso de Instagram en los Adolescentes
 
Motivos para el uso de Instagram en los Adolescentes
Motivos para el uso de Instagram en los AdolescentesMotivos para el uso de Instagram en los Adolescentes
Motivos para el uso de Instagram en los Adolescentes
 
Creativity is...
Creativity is...Creativity is...
Creativity is...
 
Intersección medicina y matemáticas
Intersección medicina y matemáticasIntersección medicina y matemáticas
Intersección medicina y matemáticas
 
Introduction to Lie Groups
Introduction to Lie GroupsIntroduction to Lie Groups
Introduction to Lie Groups
 
Presentation of my Master's Thesis
Presentation of my Master's ThesisPresentation of my Master's Thesis
Presentation of my Master's Thesis
 
Master's Thesis: Closed formulae for distance functions involving ellipses.
Master's Thesis: Closed formulae for distance functions involving ellipses.Master's Thesis: Closed formulae for distance functions involving ellipses.
Master's Thesis: Closed formulae for distance functions involving ellipses.
 
VXC: Computer Vision Presentation
VXC: Computer Vision PresentationVXC: Computer Vision Presentation
VXC: Computer Vision Presentation
 
Real Surfaces
Real SurfacesReal Surfaces
Real Surfaces
 
SIAMGD09
SIAMGD09SIAMGD09
SIAMGD09
 
EACA2010
EACA2010EACA2010
EACA2010
 
EACA08
EACA08EACA08
EACA08
 
CVC Seminar
CVC SeminarCVC Seminar
CVC Seminar
 
CIEM 07
CIEM 07CIEM 07
CIEM 07
 
CGTA09
CGTA09CGTA09
CGTA09
 
ADG 2008
ADG 2008ADG 2008
ADG 2008
 
ADG08
ADG08ADG08
ADG08
 

Último

Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoJosDanielEstradaHern
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxdkmeza
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxnandoapperscabanilla
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVGiustinoAdesso1
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 

Último (20)

Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptx
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCV
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 

VXC: Computer Vision

  • 1. U NIVERSIDAD DE C ANTABRIA FACULTAD DE C IENCIAS D PTO . DE M ATEMÁTICAS , E STADÍSTICA Y C OMPUTACIÓN Fundamentos 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 ORTILLA BAJO LA DIRECCIÓN DEL P ROF. D. F ERNANDO E TAYO G ORDEJUELA .
  • 2. Índice general Índice general 1 Índice de figuras 3 1. Introducción. 4 1.1. Comentarios generales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2. Descripción de la memoria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3. Agradecimientos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. 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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3. 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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4. 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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5. 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. ÍNDICE GENERAL 2 Bibliografía 43
  • 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. Capítulo 1 Introducció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 proporciona de manera instantánea la información sobre el mundo tridimensional que nos rodea. Mundo que está en continuo cambio el cual asumimos de manera inmediata gracias a un complicado proceso del que apenas somos 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 posterior toma de decisiones. Esta disciplina surgió a mediados del siglo XX y ha experimentado grandes avances en los últimos tiempos, gracias al crecimiento exponencial de la velocidad de los procesadores y al aumento de la capacidad de memoria de los ordenadores. Es un campo de trabajo muy amplio y en auge actualmente por 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, por lo 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 parte de 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 problema de reconstruir un objeto a partir de dos vistas calibradas1 del mismo. Para ello primero realizamos una modelización geométrica del problema y después ponemos el énfasis en los algoritmos empleados para resolverlo. A la hora de hacer esto la principal dificultad con el que nos hemos encontrado ha sido que los textos sobre la materia en cuestión, en su mayoría, están escritos con rigor deficiente en las definiciones y demostraciones, por lo que la primera tarea que hemos llevado a cabo ha sido la traducción al lenguaje matemá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 de Geometrí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, un apéndice en el que recogemos algunas observaciones y definiciones no incluidas en el texto, para evitar una excesiva sobrecarga en su lectura. 1 Más adelante explicaremos detalladamente en qué consiste esto.
  • 6. 1.3 Agradecimientos. 5 En el segundo, comenzamos explicando lo que es una imagen para un ordenador, que no es otra cosa que una aplicación lineal asignando a cada punto un valor de gris. A continuación se realiza la modelización geométrica del proceso de formación de la imagen. Esto es lo que va a sustentar todos los algoritmos, lo que da solidez a la Visión por Computador y lo que nos va a permitir formalizar el hecho que queremos estudiar. Se emplea el modelo más sencillo de cámara: la cámara pinhole que básicamente es una proyección cónica, de ahí que la Geometría Proyectiva desempeñe un papel fundamental en el campo de la visión por computador. Dicho papel se pone de manifiesto de forma clara si pensamos en lo que es una fotografía, ya que una sola imagen no preserva ni ángulos, ni longitudes, ni paralelismo, es decir, 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 por Computador: (1) calibrar las cámaras con las que se han tomado las imágenes (lo que significa poder calcular sus parámetros intrínsecos, como la distancia focal, factor de escala a la hora del pixelado de la imagen, 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ámaras y 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 objeto a partir de dos vistas calibradas. Es decir, poseemos toda la información sobre los parámetros intrínsecos de la cámara y lo que tenemos que estimar es las matrices de rotación y traslación que describen el movimiento de la cámara que ha tenido lugar entre las tomas de la primera imagen y la segunda. Una vez que lo hemos conseguido, el llegar a la matriz esencial es un sencillo cálculo, cuya justificación, sin embargo, requiere unos cuantos teoremas descritos en este trabajo. Para ello utilizamos el algoritmo de los ocho puntos que es el que permite recuperar la matriz esencial a partir de ocho correspondencias entre puntos de ambas imágenes. No nos conformamos únicamente con su implementación sino que justificamos todos sus pasos, por ejemplo respondiendo a preguntas como ¿por qué ocho puntos?, ¿y por qué hay otro que usa siete puntos?, etc. Preguntas que no son respondidas en los textos que existen sobre el tema, la mayoría de los cuales consisten en una mera concatenación de algorítmos y métodos que se pueden aplicar y que casi siempre funcionan salvo en situaciones “atípicas” que no se concretan muy bien 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 estrechamente ligadas están distintas áreas de la matemática y cómo en un sencillo problema pueden aparecer campos tan dispares como la Topología Diferencial y la Estadística, por ejemplo. Así que, a modo de conclusión podemos afirmar: “Todo lo que se estudia en la Licenciatura sí es importante, es más, nunca sabes cuando lo vas a necesitar.” 1.3. Agradecimientos. En primer lugar, mencionar a Laureano González Vega quien nos acompañó en los comienzos de este 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. 1.3 Agradecimientos. 6 Figura 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 perspectiva de paisajes tridimensionales. Figura 1.2: Modelo clásico de cámara pinhole.
  • 8. 1.3 Agradecimientos. 7 Investigación dentro de la cual se ha desarrollado este trabajo. Muchas gracias por permitirme disfrutar de 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. Capítulo 2 Modelización geométrica. 2.1. Introducción. Pretendemos buscar un modelo matemático para el proceso de formación de la imagen. La visión es el problema inverso al proceso de formación de la imagen: la última estudia el paso de objetos a imágenes; mientras que la primera, cómo usar las imágenes para obtener una descripción tridimensional de 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 al Renacimiento1 . A pesar de su antigüedad, es una aproximación muy cercana a los fotosensores CCD2 actuales. Responde perfectamente a nuestros objetivos, aunque cabe señalar que no resulta adecuado si lo 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 una imagen no sólo necesitamos saber dónde dibujar los puntos, sino también qué valor de brillo tenemos que 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 o un 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 obtenida generando una “foto". Podemos entender una “foto” como una escena distinta de la real que produce en el sensor de imagen (en este caso, el ojo) la misma imagen que la real. En este sentido las “fotos” son ilusiones controladas: son escenas diferentes de la realidad (ya que son planas) que producen en el ojo la misma impresión que la escena original. Lo que hay que tener en cuenta es que las tres representaciones contienen 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. 2.1 Introducción. 9 Figura 2.1: Tres representaciones equivalentes de una misma imagen: como fotografía, como matriz de enteros y como superficie. Aunque a “simple vista” no lo parezca, las tres representaciones guardan exactamente la misma información.
  • 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 en la dirección de propagación de la luz (difracción, refracción, reflexión). Nosotros sólo consideraremos el modelo 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 un plano 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 el diá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 f Demostració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 de o (ver figura 2.2). La primera interseca al eje óptico en el foco; la segunda, no se refleja. Sea x el punto donde las dos rectas se intersecan, y sea z la distancia entre éste y el centro óptico. Descomponiendo cualquier recta 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 la construcción llevada a cabo se obtiene la ecuación buscada. 4 Donde E3 representa el espacio euclídeo tridimensional.
  • 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 sencillo porque se modeliza con una proyección cónica. Cabe señalar que ha sido considerado tradicionalmente ya 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 rectas pasen 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 la distancia focal, que las coordenadas de p y su imagen x están relacionadas por las ecuaciones: X Y x = −f , y = −f Z Z El signo negativo de las fórmulas se debe a que si consideramos que el plano imagen está detrás del centro óptico la imagen se forma invertida (al igual que ocurre en la retina), como se observa en la figura 2.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 Z Hemos de señalar que estas ecuaciones simplemente representan una proyección cónica de centro o y eje el plano imagen, π : R3 → R2 ; X → x, escribiremos X = π(x). Notemos que todos los puntos que está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 coordenadas mó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 de rectas vectoriales de X.
  • 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, podemos reducir el proceso de formación de la imagen a trazar rectas entre puntos tridimensionales y píxeles. Para establecer esta correspondencia entre los puntos del espacio tridimensional y sus imágenes proyectadas en un plano imagen dos-dimensional, necesitamos un modelo matemático que tenga en cuenta tres tipos de 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 transformaciones coordenadas. 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 en este 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 sistema de referencia del mundo7 . Las coordenadas de este mismo punto X = [X, Y, Z]T con respecto al sistema de 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 ver que 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 referencia móvil de una cámara. 8 Donde R y T son matrices rotación y traslación, respectivamente.
  • 14. 2.4 Modelo geométrico del proceso de formación de la imagen. 13 En 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 1 o, lo que es lo mismo,   f 0 0 0 Zx =  0 f 0 0  X 0 0 1 0 donde X := [X, Y, Z, 1]T y x := [x, y, 1]T en coordenadas homogéneas. Representaremos la coordenada Z de p (es decir, su “profundidad”) por un escalar positivo arbitrario λ ∈ R+ , que no es otra cosa que la constante 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 0 obteniendo 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 0 La matriz Π0 se conoce como la matriz de proyección canónica. Sustituyendo las coordenadas de la transformación lineal, tenemos:     X X0  Y  R T  Y0  =  Z0  .     Z  0 1 1 1 Y, 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 1 o, 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. 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 que se llama “referencia canónica de la retina”, con centro en el centro óptico y con un eje alineado con el eje óptico. En la práctica, cuando se toman imágenes con una cámara digital las medidas se obtienen en términos de píxeles (i, j), con el origen del sistema de coordenadas de la imagen pixelada, situado tí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 de píxeles. A la par que encontremos tal relación, descubriremos los denominados parámetros intrínsecos de 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 e y. Si (x, y) están en unidades métricas (por ejemplo, mm), y (xs , ys ) son versiones a escala de las correspondientes 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 (en unidades 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 el eje z interseca al plano imagen), mientras que los píxeles (i, j) normalmente se especifican relativos a la esquina superior izquierda. Entonces, lo que necesitamos es trasladar el origen del sistema de referencia a 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 de la imagen. Esto se muestra en la figura 2.5.
  • 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 1 donde x e y son las coordenadas de la imagen actual en píxeles. Esto se ilustra en la figura 2.5. Si los píxeles no son rectangulares, podemos utilizar una forma más geneal de la matriz de escalado: sx sθ ∈ R2×2 0 sy donde 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 de transformación toma entonces la forma general:   sx sθ ox Ks =  0 sy oy  ∈ R3×3 . 0 0 1 En 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ón obtenemos 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 expresadas en 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. 2.4 Modelo geométrico del proceso de formación de la imagen. 16 Nó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 1 Esto 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 1 donde 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, los pará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 obtienen a 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 1 Puede ser que conozcamos la matriz K de la cámara o que no. Si no es así, para conocerla, tenemos que llevar 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 a la 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 necesario para extraer información métrica a partir de imágenes y obtener resultados precisos.
  • 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 1 que 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 la ecuació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 X0 donde ΠT , ΠT , ΠT ∈ R4 son las filas de la matriz de proyección Π. 1 2 3 2.4.3. Distorsión radial. Los parámetros de la matriz K describen distorsiones lineales. Sin embargo, los sistemas ópticos reales suelen presentar desviaciones respecto al modelo proyectivo ideal. Por ejemplo, frecuentemente aparece una deformación radial que hace que las líneas rectas se vean curvadas (ver figura 2.7). Es más grave 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 2 nales de la cámara que miden el grado de distorsión. Existen diversos algoritmos y paquetes de software para compensar la distorsión radial usando procedimientos de calibración. Otra posibilidad es estimarla directamente 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ímplemente por 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 en la imagen.
  • 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. Capítulo 3 Geometrí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 del objeto, es decir, información bidimensional. Si trabajamos con dos fotos, en la zona común a éstas (zona de solape), podremos tener visión estereoscópica; o dicho de otro modo, información tridimensional. Eso es lo que se conoce como geometría epipolar o geometría de dos vistas: disponemos de dos fotografías de un mismo objeto, tomadas desde distintos puntos de vista, y queremos determinar la estructura del mismo. El punto proyectado y los dos centros ópticos de las cámaras se disponen como se indica en la figura 3.1. Las relaciones geométricas entre los elementos que ahí aparecen pueden describirseese de forma algebraica mediante una restricción que involucra las posiciones de las cámaras y las coordenadas de las dos imágenes del punto p, x1 , x2 , pero no sus coordenadas tridimensionales. Así, dados suficientes puntos 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á que están relacionados como se describirá en el teorema 3.2.1. 1 Consultar apéndice, sección 5.2, pág. 36
  • 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 origen o en el centro óptico y el eje z alineado con el eje óptico. La relación entre las coordenadas de un punto con respecto a ella y sus coordenadas 3-D con respecto a W , la referencia del “mundo” puede ser expresada mediante un movimiento del sólido rígido2 . Sin pérdida de generalidad, podemos suponer que la referencia W coincide con la de una de las cámaras, y que está relacionada con la posición de la segunda cámara por una transformación euclídea3 g = (R, T ) ∈ SE(3). Sean X1 y X2 las coordenadas 3-D del punto p relativas a las dos referencias de las cámaras, respectivamente; se relacionan mediante la 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 obtenidos a 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. 2 Demostració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. 3.3 Propiedades de la matriz esencial. 21 Figura 3.2: La restricción epipolar surge a partir de que los puntos en correspondencia están relacionados mediante 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 2 cero, así, multiplicando a la izquierda por xT en ambos lados de la igualdad obtenemos 0 = x2 T Rλ1 x1 2 y, dado que λ1 > 05 , podemos dividir y obtener: x2 T Rx1 = 0 Nota 3.2.2. La ecuación xT T Rx1 = 0 es denominada restricción epipolar. 2 Definición 3.2.3. Dadas dos posiciones distintas de una cámara, relacionadas por la transformación g = (R, T ) ∈ SE(3) se llama matriz esencial y se denota E la matriz E := T R Definició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 posible ya 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. 3.3 Propiedades de la matriz esencial. 22 Definició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 de Lie 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 lema de Á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 y T = 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 que las imágenes de los vectores de la base, [1, 0, 0]T , [0, 1, 0]T , [0, 0, 1]T por ambas aplicaciones son las mismas. No incluiremos la comprobación que hemos efectuado con Maple por consistir en un simple cálculo. Teorema 3.3.4 (Caracterización de matriz esencial). Una matriz no nula E ∈ R3×3 es una matriz esencial 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) satisfaciendo R0 T = [0, 0, T ]T . Llamemos a := R0 T ∈ R3 . Como det(R0 ) = 1, por el lema 3.3.3, sabemos que T = 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 0 Así, el conjunto de valores singulares de la matriz esencial E = T R es { T , T , 0}. Nos resta probar T que U, V ∈ SO(3). Ya sabemos que E = T R = R0 aR0 R. Sea RZ (θ) la matriz del giro de θ radianes alrededor 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. 3.3 Propiedades de la matriz esencial. 23 Y, 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 0 Sustituyendo, T π E = T R = R0 RZ (+ )diag{ T , T , 0}R0 R. 2 Ahora, para obtener la SVD de E, E = U ΣV T , basta tomar U = RT R (+ π ) y V T = R R. Como 0 Z 2 0 hemos 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 2 De 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) y un vector de traslación T ∈ R3 , usando que E = T R. El problema inverso, es decir, calcular R y T a partir de la matriz fundamental es menos obvio. En la demostración de la condición de suficiencia en el teorema anterior, hemos empleado la SVD para construir dos soluciones para (R, T ). Pero, ¿serán éstas las ú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 T existe R ∈ SO(3) tal que T R es también antisimétrica, entonces13 R = I o R = euπ , donde u = T . b Además, T euπ = −T . b Demostración. Sin pérdida de generalidad, supongamos que T = 1. Como T R es también antisimé- T trica, T R = −T R ⇒ RT T T = −T R ⇒ RT −T = −T R ⇒ RT T = T R y, premultiplicando por 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 b plicando por ω, eω θ T eω θ ω = T ω; eω θ ω = ω, luego eω θ T ω = T ω ⇒ eω θ − 1 T ω = 0. Como ω es b b b b b el único autovector asociado al autovalor 1 de la matriz eωθ , y T ω es ortogonal a ω, T ω ha de ser cero14 b T Así, como T T = 0 y ω = 1, se tiene ω = ± T ; es decir, ω = ±u. R conmuta con T : T = RT R ⇔ T RT = 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 b propio 1. 15 Ver apéndice, sección 5.4, pág. 39.
  • 25. 3.3 Propiedades de la matriz esencial. 24 y, 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ωπ . b Dos posibles casos: T ω=u= T , entonces eωπ T = −T ; b T ω = −u = − T , entonces eω T = −T . b Ambos 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 nula E ∈ E. Demostración. Supongamos que (R1 , T1 ), (R2 , T2 ) ∈ SE(3) son dos soluciones de la ecuación T R = T E. 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ás aún, si E = U ΣV es la factorización SVD de E, con U, V ∈ SO(3), las soluciones vienen dadas por la siguiente 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 c b 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. Capítulo 4 Reconstrucción a partir de dos vistas calibradas. 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 una misma 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 calcular las matrices R y T dada E. Sin embargo, la matriz que obtendremos como solución usando los puntos en correspondencia puede no ser una matriz esencial, por lo que necesitaremos tomar la matriz esencial más próxima a ella, proyectándola sobre el espacio de las matrices esenciales, previamente al cálculo de la posición relativa. Aunque el algoritmo que proponemos aquí es poco óptimo si los datos presentan ruido, lo hemos elegido porque 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 e13 Definición 4.2.1. Sea E = T R una matriz esencial , con coeficientes E =  e21 e22 e23  , llama- e31 e32 e33 mos 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 33 nius 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 de Kronecker 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 la restricción epipolar, xT Ex1 = 0, así: 2 aT E S = 0 1 Ya se verá cuál es y por qué.
  • 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 2 1, 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 lineal obtenemos E S . Como E es una matriz homogénea, para resolverlo el rango de X ha de ser 8, por lo que necesitamos ocho pares de puntos en correspondencia. Lo habitual, como las correspondencias suelen tener errores, es que el sistema no tenga solución. En ese caso, se aplica el método de los mínimos cuadrados: tomamos E S tal que minimice la función de error2 X E S 2 . Otra situación que puede darse es que el rango de X sea menor que ocho a pesar de que tengamos má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 suficiente con que esté en el núcleo de X . De hecho, tiene que satisfacer una restricción adicional: que su forma matricial E sea una matriz esencial. Para solucionarlo lo que haremos será primero calcular el núcleo de 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. El siguiente 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 2 Demostració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 f forma 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. 4.2 El algoritmo lineal de los ocho puntos: justificación teórica. 27 Lema 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 f Definimos 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 q33 Con esta notación, lema anterior y usando que la traza de A y AT es la misma llegamos a E − F 2 = f traza[(Σλ − 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 a dos, 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 1 Obviamente, 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 forma U Σ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 SVD de E tanto U como V son matrices de SO(3). Eso no es siempre cierto cuando E se estima a partir de datos con ruido. De hecho, los algoritmos estándar que computan la factorización SVD no garantizan que las matrices U y V que devuelven, tengan determinante positivo. Sin embargo, nuestra suposición es correcta porque la matriz E es homogénea y basta cambiarla de signo para que esté en las condiciones del 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 proporciana dos 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 obtener todas 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 3 2(σλ1 + σλ2 ) + (σ 2 + σ 2 + 0) = λ2 + σ 2 − 2σλ1 + λ2 + σ 2 − 2σλ2 + λ2 . 1 2 3
  • 29. 4.2 El algoritmo lineal de los ocho puntos: justificación teórica. 28 Figura 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 los cuatro 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 2 Entonces la matriz esencial es   √ 0 0 0 √ E = TR =  2 0 − 2 . 0 2 0 Como T = 2, la matriz E que hemos obtenido no está normalizada. Esto también se aprecia fácilmente a 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 − 22 donde los valores singulares no nulos toman el valor 2 en vez de 1. Normalizar E es equivalente a sustituir la matriz Σ anterior por Σ = diag{1, 1, 0}. Ahora es fácil calcular las cuatro posibles descomposiciones (R, T ) para E
  • 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 2 La 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 algoritmo lineal 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), el algoritmo 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. 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 1 A 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. En realidad, la matriz E (como función de (R, T )) tiene sólo cinco grados de libertad: tres para la rotación y 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 S pero emplea propiedades algebraicas de la matriz esencial más complicadas. Esto no debería resultarnos sorprendente, ya que Kruppa (1913) probó que sólo se necesitan cinco puntos en posición general para recuperar (R, T ). Se prueba que hay hasta diez soluciones (posiblemente complejas), aunque no pueden obtenerse 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, luego en general tendremos 2 × 2 = 4 posibles soluciones para (R, T ). Para conseguir unicidad en la solución se suele tomar la única de ellas que hace que las “profundidades” de los puntos 3-D sean positivas con respecto 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. 4.4 Reconstrucción “euclídea”. 31 algoritmo 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 comprobado experimentalmente que en estos casos, si hay suficiente ruido, (por la traslación ficticia que se crea) el algoritmo 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ás puntos en correspondencia y devuelve la posición relativa (rotación y traslación) entre las dos cámaras salvo factor de escala α ∈ R+ . Sin pérdida de generalidad, podemos suponer que α = 1, lo que equivale a normalizar el vector de traslación. En estas condiciones, la posición relativa y las correspondencias entre 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 factor de 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 resolverse fá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 es simplemente 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 1 solución única, la matriz M j necesita tener rango igual a 1. Este caso no se da sólo cuando x2 T = 0, es decir, 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 2 Luego la ecuación Mλ = 0 determina todas las profundidades salvo factor de escala.
  • 33. 4.5 Implementación en Matlab. 32 4.5. Implementación en Matlab. En esta sección se recogen el código del algoritmo de los ocho puntos y de los algoritmos intermedios a 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 correspondencias n = size(p); NPOINTS = n(2); % definimos una matriz A tal que A*[v1,v2,v3,s1,s2,s3,s4,s5,s6]’ = 0 A = zeros(NPOINTS, 9); if NPOINTS < 9 error(’No hay suficientes datos’) return; end for i = 1:NPOINTS A(i,:) = kron(p(:,i),q(:,i))’; end r = 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ño e = V(:,9); e = (round(1.0e+10*e))*(1.0e-10); % matriz esencial E = reshape(e, 3, 3); % así, las cuatro posibilidades son Rzp = [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. 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; end R(:,:,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; % 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 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 end R(:,:,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. 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 Rodrigues function [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 eje function[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. 4.5 Implementación en Matlab. 35 • Matriz antisimétrica. % Dado un vector 3D devuelve su matriz antisimétrica asociada function 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 asociado function[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. Capítulo 5 Apé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 a varios de los condensadores que estén a su lado en el circuito impreso. La alternativa digital a los CCD son los dispositivos CMOS (Complementary Metal Oxide Semiconductor) utilizados en algunas cámaras digitales y en numerosas Webcam. En la actualidad, los CCD son mucho más populares en aplicaciones profesionales y en cámaras digitales. Popularmente, el término CCD es conocido por ser uno de los elementos principales de las cámaras fotográficas y de video digitales. En éstas, el CCD es el sensor con diminutas células fotoeléctricas que registran 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 del CCD, que se expresa en píxeles. Cuantos más píxeles, mayor es la resolución. Hoy en día, las cámaras fotográ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”, del inglés Red, Green, Blue), por lo cual tres píxeles, uno para cada color, forman un conjunto de células fotoeléctricas capaz de captar cualquier color en la imagen. Por esto, la matriz de una imagen captada por 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 de vista, 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 que hemos 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 los proyectados del mismo punto del espacio. Así, el problema de correspondencia consiste en establecer qué punto de la primera imagen se corresponde con qué punto de la segunda, en el sentido de que ambos son 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 de información a la hora de establecer las correspondencias, realizamos un análisis de las estructuras de la imagen, cómo están dispuestas, cuáles son próximas o colindantes, etc. Para darse cuenta de esto basta
  • 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 enmarcadas dentro 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 las cámaras es mucho mayor que la distancia entre los centros de las cámaras) se verifican dos hipótesis bá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: dado un elemento en la imagen izquierda, buscamos el elemento correspondiente en la imagen derecha. Esto conlleva 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 que habrí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”.
  • 39. 5.3 Vectores y matrices. 38 Figura 5.2: Los puntos “en correspondencia” de las dos vistas son los proyectados del mismo punto del espacio. 5.3. Vectores y matrices. Definición 5.3.1 (Producto vectorial). Dados dos vectores u, v ∈ R3 , su producto vectorial es otro vector perpendicular a ambos con coordenadas   u2 v3 − u3 v2 u × v =  u3 v1 − u1 v3  ∈ R3 . u1 v2 − u2 v1 Definición 5.3.2 (Matriz antisimétrica). Una matriz A ∈ Rn×n se dice antisimétrica si AT = −A. Nota 5.3.3 (Propiedades de una matriz antisimétrica). Si A es una matriz antisimétrica real, entonces: Todos los valores propios de A son cero o imaginarios puros, es decir, son de la forma iω con √ i = −1 y ω ∈ R. Existe una matriz ortogonal V tal que A = V DV T con D matriz diagonal por bloques D = diag{A1 , . . . , Am , 0, . . . , 0}, donde cada Ai es una matriz antisimétrica real 2 × 2 de la forma 0 ai Ai = ∈ R2×2 , i = 1, 2, . . . , m. −ai 0 Definición 5.3.4 (Matriz antisimétrica asociada a un vector). Dado u = [u1 , u2 , u3 ]T ∈ R3 se define su matriz antisimétrica asociada como la matriz   0 −u3 u2 u =  u3 0 −u1  ∈ R3×3 . −u2 u1 0 Nota 5.3.5. La matriz antisimétrica asociada a un vector es antisimétrica,es decir, uT = −u. Se define del modo anterior porque si u, v ∈ R3 se tiene que uv = u × v. Si u = 0, el rango de u es dos. También se satisface que uu = 0 y que uT u = 0, es decir, las columnas y las filas de la matriz u son ortogonales a u.