SlideShare una empresa de Scribd logo

VXC: Computer Vision

Este documento presenta un trabajo de investigación sobre los fundamentos matemáticos de la visión por computador. En la introducción, describe brevemente el campo de la visión por computador y el objetivo del trabajo, que es estudiar los algoritmos para reconstruir objetos a partir de dos imágenes calibradas utilizando un enfoque matemático riguroso. A continuación, se divide en cinco capítulos donde se modela geométricamente el proceso de formación de imágenes, se explica la geometría epipolar para el emparejamiento de puntos entre imá

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

Recomendados

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

Lista de Normas para el sector educación 2024
Lista de Normas para el sector educación 2024Lista de Normas para el sector educación 2024
Lista de Normas para el sector educación 2024miguelracso
 
marco conceptual lectura pisa 2018_29nov17.pdf
marco conceptual lectura pisa 2018_29nov17.pdfmarco conceptual lectura pisa 2018_29nov17.pdf
marco conceptual lectura pisa 2018_29nov17.pdfedugon08
 
La Gamificacion como Estrategia de Aprendizaje Ccesa007.pdf
La Gamificacion como Estrategia de Aprendizaje Ccesa007.pdfLa Gamificacion como Estrategia de Aprendizaje Ccesa007.pdf
La Gamificacion como Estrategia de Aprendizaje Ccesa007.pdfDemetrio Ccesa Rayme
 
GUÍA DIDÁCTICA UNIDAD 2_Medios Didácticos
GUÍA DIDÁCTICA UNIDAD 2_Medios DidácticosGUÍA DIDÁCTICA UNIDAD 2_Medios Didácticos
GUÍA DIDÁCTICA UNIDAD 2_Medios Didácticoseliecerespinosa
 
Funciones-vitales-de-los-seres-vivos diapositiva.pptx
Funciones-vitales-de-los-seres-vivos diapositiva.pptxFunciones-vitales-de-los-seres-vivos diapositiva.pptx
Funciones-vitales-de-los-seres-vivos diapositiva.pptxkarolbustamante2911
 
Tema 3 Clasificación de los seres vivos 2024.pdf
Tema 3 Clasificación de los seres vivos 2024.pdfTema 3 Clasificación de los seres vivos 2024.pdf
Tema 3 Clasificación de los seres vivos 2024.pdfIES Vicent Andres Estelles
 
Diapositivas abarcando el tema del citosol
Diapositivas abarcando el tema del citosolDiapositivas abarcando el tema del citosol
Diapositivas abarcando el tema del citosolchacaguasaydayana284
 
Metodología activa en el proceso de enseñanza aprendizaje 1.pdf
Metodología activa en el proceso de enseñanza aprendizaje 1.pdfMetodología activa en el proceso de enseñanza aprendizaje 1.pdf
Metodología activa en el proceso de enseñanza aprendizaje 1.pdfCESAR TTUPA LLAVILLA
 
Biología Marina, Elaborado por Sujey Lara
Biología Marina, Elaborado por Sujey LaraBiología Marina, Elaborado por Sujey Lara
Biología Marina, Elaborado por Sujey Larassuserb2b6fc1
 
c2.hu2.p3.p9.Políticas de lo colectivo.pptx
c2.hu2.p3.p9.Políticas de lo colectivo.pptxc2.hu2.p3.p9.Políticas de lo colectivo.pptx
c2.hu2.p3.p9.Políticas de lo colectivo.pptxMartín Ramírez
 
Reinos Y Clasificación Diapositivas.pptx
Reinos Y Clasificación Diapositivas.pptxReinos Y Clasificación Diapositivas.pptx
Reinos Y Clasificación Diapositivas.pptxkarolbustamante2911
 
Comunidad de aprendizaje virtuales Presentacion Slide Share.
Comunidad de aprendizaje virtuales Presentacion Slide Share.Comunidad de aprendizaje virtuales Presentacion Slide Share.
Comunidad de aprendizaje virtuales Presentacion Slide Share.NoelyLopez1
 
PRESENTACION DE CURSO DE ALINEACION EN EL ESTANDAR EC0435
PRESENTACION DE CURSO DE ALINEACION EN EL ESTANDAR EC0435PRESENTACION DE CURSO DE ALINEACION EN EL ESTANDAR EC0435
PRESENTACION DE CURSO DE ALINEACION EN EL ESTANDAR EC0435LICMURO
 
Cambios en los seres vivos , evolución, evidencia.
Cambios en los seres vivos , evolución, evidencia.Cambios en los seres vivos , evolución, evidencia.
Cambios en los seres vivos , evolución, evidencia.CrisEli1
 
Diapositivas acerca de la Mitocondria.pdf
Diapositivas acerca de la Mitocondria.pdfDiapositivas acerca de la Mitocondria.pdf
Diapositivas acerca de la Mitocondria.pdfchacaguasaydayana284
 
RESISTENCIA_ROSA ANEIROS_CONTAS DE INSTAGRAM DAS PERSONAXES DA NOVELA
RESISTENCIA_ROSA ANEIROS_CONTAS DE INSTAGRAM DAS PERSONAXES DA NOVELARESISTENCIA_ROSA ANEIROS_CONTAS DE INSTAGRAM DAS PERSONAXES DA NOVELA
RESISTENCIA_ROSA ANEIROS_CONTAS DE INSTAGRAM DAS PERSONAXES DA NOVELARemoeaLinguaLinguaGa
 
Tema 4. Razonamiento Lógico 25-02-24.pdf
Tema 4. Razonamiento Lógico 25-02-24.pdfTema 4. Razonamiento Lógico 25-02-24.pdf
Tema 4. Razonamiento Lógico 25-02-24.pdfNoe Castillo
 

Último (20)

Lista de Normas para el sector educación 2024
Lista de Normas para el sector educación 2024Lista de Normas para el sector educación 2024
Lista de Normas para el sector educación 2024
 
marco conceptual lectura pisa 2018_29nov17.pdf
marco conceptual lectura pisa 2018_29nov17.pdfmarco conceptual lectura pisa 2018_29nov17.pdf
marco conceptual lectura pisa 2018_29nov17.pdf
 
La Gamificacion como Estrategia de Aprendizaje Ccesa007.pdf
La Gamificacion como Estrategia de Aprendizaje Ccesa007.pdfLa Gamificacion como Estrategia de Aprendizaje Ccesa007.pdf
La Gamificacion como Estrategia de Aprendizaje Ccesa007.pdf
 
GUÍA DIDÁCTICA UNIDAD 2_Medios Didácticos
GUÍA DIDÁCTICA UNIDAD 2_Medios DidácticosGUÍA DIDÁCTICA UNIDAD 2_Medios Didácticos
GUÍA DIDÁCTICA UNIDAD 2_Medios Didácticos
 
Funciones-vitales-de-los-seres-vivos diapositiva.pptx
Funciones-vitales-de-los-seres-vivos diapositiva.pptxFunciones-vitales-de-los-seres-vivos diapositiva.pptx
Funciones-vitales-de-los-seres-vivos diapositiva.pptx
 
Tema 3 Clasificación de los seres vivos 2024.pdf
Tema 3 Clasificación de los seres vivos 2024.pdfTema 3 Clasificación de los seres vivos 2024.pdf
Tema 3 Clasificación de los seres vivos 2024.pdf
 
Diapositivas abarcando el tema del citosol
Diapositivas abarcando el tema del citosolDiapositivas abarcando el tema del citosol
Diapositivas abarcando el tema del citosol
 
Metodología activa en el proceso de enseñanza aprendizaje 1.pdf
Metodología activa en el proceso de enseñanza aprendizaje 1.pdfMetodología activa en el proceso de enseñanza aprendizaje 1.pdf
Metodología activa en el proceso de enseñanza aprendizaje 1.pdf
 
Biología Marina, Elaborado por Sujey Lara
Biología Marina, Elaborado por Sujey LaraBiología Marina, Elaborado por Sujey Lara
Biología Marina, Elaborado por Sujey Lara
 
c2.hu2.p3.p9.Políticas de lo colectivo.pptx
c2.hu2.p3.p9.Políticas de lo colectivo.pptxc2.hu2.p3.p9.Políticas de lo colectivo.pptx
c2.hu2.p3.p9.Políticas de lo colectivo.pptx
 
Dificultad de la escritura alfabética- Estrategia Pukllaspa yachasun - Curo F...
Dificultad de la escritura alfabética- Estrategia Pukllaspa yachasun - Curo F...Dificultad de la escritura alfabética- Estrategia Pukllaspa yachasun - Curo F...
Dificultad de la escritura alfabética- Estrategia Pukllaspa yachasun - Curo F...
 
Reinos Y Clasificación Diapositivas.pptx
Reinos Y Clasificación Diapositivas.pptxReinos Y Clasificación Diapositivas.pptx
Reinos Y Clasificación Diapositivas.pptx
 
CALCULO RENTABILIDAD DE UN PROYECTO URJC.pdf
CALCULO RENTABILIDAD DE UN PROYECTO URJC.pdfCALCULO RENTABILIDAD DE UN PROYECTO URJC.pdf
CALCULO RENTABILIDAD DE UN PROYECTO URJC.pdf
 
Comunidad de aprendizaje virtuales Presentacion Slide Share.
Comunidad de aprendizaje virtuales Presentacion Slide Share.Comunidad de aprendizaje virtuales Presentacion Slide Share.
Comunidad de aprendizaje virtuales Presentacion Slide Share.
 
PRESENTACION DE CURSO DE ALINEACION EN EL ESTANDAR EC0435
PRESENTACION DE CURSO DE ALINEACION EN EL ESTANDAR EC0435PRESENTACION DE CURSO DE ALINEACION EN EL ESTANDAR EC0435
PRESENTACION DE CURSO DE ALINEACION EN EL ESTANDAR EC0435
 
Cambios en los seres vivos , evolución, evidencia.
Cambios en los seres vivos , evolución, evidencia.Cambios en los seres vivos , evolución, evidencia.
Cambios en los seres vivos , evolución, evidencia.
 
Bendito el que viene en el nombre del Señor
Bendito el que viene en el nombre del SeñorBendito el que viene en el nombre del Señor
Bendito el que viene en el nombre del Señor
 
Diapositivas acerca de la Mitocondria.pdf
Diapositivas acerca de la Mitocondria.pdfDiapositivas acerca de la Mitocondria.pdf
Diapositivas acerca de la Mitocondria.pdf
 
RESISTENCIA_ROSA ANEIROS_CONTAS DE INSTAGRAM DAS PERSONAXES DA NOVELA
RESISTENCIA_ROSA ANEIROS_CONTAS DE INSTAGRAM DAS PERSONAXES DA NOVELARESISTENCIA_ROSA ANEIROS_CONTAS DE INSTAGRAM DAS PERSONAXES DA NOVELA
RESISTENCIA_ROSA ANEIROS_CONTAS DE INSTAGRAM DAS PERSONAXES DA NOVELA
 
Tema 4. Razonamiento Lógico 25-02-24.pdf
Tema 4. Razonamiento Lógico 25-02-24.pdfTema 4. Razonamiento Lógico 25-02-24.pdf
Tema 4. Razonamiento Lógico 25-02-24.pdf
 

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.