+ All Categories
Home > Documents > Dense 3D Plane Based Reconstruction From Video in Real Time

Dense 3D Plane Based Reconstruction From Video in Real Time

Date post: 23-Oct-2015
Category:
Upload: guillermo-navarro
View: 52 times
Download: 4 times
Share this document with a friend
Description:
Master thesis.3D Plane Based Reconstruction from video in real time.
Popular Tags:
85
Proyecto de fin de Carrera Ingeniería en Informática Curso 2010/2011 Reconstrucción 3D densa basada en planos a partir de una secuencia de vídeo Guillermo Navarro Pardo Director: Javier Civera Co-Director: Luis Montesano Departamento de Informática e Ingeniería de Sistemas Centro Politécnico Superior Universidad de Zaragoza Fecha Junio de 2011
Transcript

Proyecto de fin de CarreraIngeniería en Informática

Curso 2010/2011

Reconstrucción 3D densa basada en planos apartir de una secuencia de vídeo

Guillermo Navarro Pardo

Director: Javier Civera

Co-Director: Luis Montesano

Departamento de Informática e Ingeniería de SistemasCentro Politécnico Superior

Universidad de Zaragoza

Fecha Junio de 2011

Agradecimientos

Me gustaría aprovechar la oportunidad para agradecer a todas esas personas que mehan apoyado durante este tiempo. En primer lugar, y como no podía ser de otra manera,agradecer a mis padres por todo su apoyo, que siempre han estado ahí tanto en losmomentos buenos como en los malos, donde nunca me han fallado, además de ofrecermela oportunidad de estudiar la carrera que siempre he querido.

En segundo lugar quisiera agradecer a Javier Civera y Luis Montesano, mis directoresde PFC, por ofrecerme este proyecto que me permite culminar mi carrera y acceder almundo laboral, siguiente etapa de mi vida en la que tendré que afrontar nuevos retos.

Por último, pero no por ello menos importante, a todos aquellos amigos que siemprehan confiado en mí, por su apoyo y amistad que siempre te fortalecen en los momentosmás difíciles, así como a todos los profesores y tutores que me han orientado hacia estemomento durante todos estos años.

Gracias a todos.

Reconstrucción 3D densa basada en planosa partir de una secuencia de vídeo

RESUMEN

La reconstrucción de la geometría 3D a partir de múltiples imágenes es un campo dela visión por computador que ha sido ampliamente estudiado en los últimos años.

En función de la cantidad de puntos empleados se distinguen dos tipos dereconstrucción. Cuando la reconstrucción se limita a la determinación de las coordenadastridimensionales de ciertas partes de la escena a través de la identificación de los puntosde interés en las imágenes, se trata de una reconstrucción no-densa. Por el contrario, si setrabaja con la totalidad de los píxeles en ambas imágenes, se trata de una reconstruccióndensa.

La reconstrucción se puede realizar a partir de múltiples imágenes separadas o apartir de vídeo. Aparte de las restricciones temporales, la diferencia principal radica enque las imágenes en el vídeo se procesan secuencialmente, mientras que en el caso delas imágenes separadas, toda la información sobre la escena está disponible desde elprincipio. Por lo tanto, la utilización de vídeo es más exigente, ya que se debe realizaruna reconstrucción incremental que no sea computacionalmente cara con el objetivo depoder calcularse en tiempo real.

Actualmente, existen métodos que permiten calcular la posición de las cámaras y unconjunto no-denso de puntos de interés en tiempo real. Dichas técnicas permiten obteneruna reconstrucción no-densa. Sin embargo, la reconstrucción densa en tiempo real es unárea que todavía está siendo explorada en la actualidad.

En el presente proyecto se pretende conseguir un sistema de reconstrucción 3D densoen tiempo real a partir de vídeo. El principal problema de la reconstrucción densa esque es computacionalmente cara, es decir, el tiempo de cómputo necesario para obteneruna nube de puntos densa es demasiado elevado para ser calculado en tiempo real. Comosolución a este problema se asume un modelo multiplanar, es decir, se asume que la escenaestá compuesta principalmente por planos y, partiendo de esta premisa, se densifica elmodelo no-denso. De esta forma, se pretende reconocer los planos dominantes de los queestá compuesta la escena. Mediante esta aproximación se reduce el coste computacionalasociado a la reconstrucción densa y se obtiene un modelo basado en planos en tiemporeal.

El trabajo ha sido evaluado en un conjunto de escenas. Los resultados muestranlas ventajas e inconvenientes derivados de esta nueva aproximación al problema dereconstrucción densa 3D en tiempo real. Así mismo, con base en estos resultados seilustran las limitaciones y mejoras de los algoritmos propuestos.

Índice general

1. Introducción 11.1. Breve resumen del algoritmo . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2. Organización de la memoria . . . . . . . . . . . . . . . . . . . . . . . . 3

2. Reconstrucción 3D no-densa a partir de vídeo 52.1. Construcción del mapa . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2. Tracking de características . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.3. Modelo de cámara y proyección . . . . . . . . . . . . . . . . . . . . . . 7

3. Geometría de múltiples vistas y escenas planas 113.1. Definición de un plano . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.2. Homografías . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4. Estimación multimodelo 15

5. Reconstrucción 3D densa basada en planos a partir de vídeo 195.1. Estimación multimodelo en tiempo real . . . . . . . . . . . . . . . . . . 19

5.2. Consistencia fotométrica de los planos estimados . . . . . . . . . . . . . 21

5.3. Consistencia temporal de los planos estimados . . . . . . . . . . . . . . . 24

5.4. Reducir el tiempo de cómputo de la comprobación de la consistenciafotométrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

5.5. Generación de texturas . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

6. Resultados experimentales 296.1. Reconstrucción de habitación 1 . . . . . . . . . . . . . . . . . . . . . . . 31

6.2. Reconstrucción de habitación 2 . . . . . . . . . . . . . . . . . . . . . . . 34

6.3. Reconstrucción de encimera . . . . . . . . . . . . . . . . . . . . . . . . 37

6.4. Reconstrucción de escritorio . . . . . . . . . . . . . . . . . . . . . . . . 40

I

7. Conclusiones y trabajo futuro 43

Bibliografía 44

A. Datos de los experimentos 49

A.1. Set de keyframes de la habitación 1 . . . . . . . . . . . . . . . . . . . . 49

A.2. Set de keyframes de la habitación 2 . . . . . . . . . . . . . . . . . . . . 53

A.3. Set de keyframes de la encimera . . . . . . . . . . . . . . . . . . . . . . 56

A.4. Set de keyframes del escritorio . . . . . . . . . . . . . . . . . . . . . . . 61

B. Manual de uso e instalación del software 65

B.1. Requisitos necesarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

B.1.1. Librerías: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

B.2. Instalación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

B.2.1. Instalación de las dependencias . . . . . . . . . . . . . . . . . . 66

B.2.2. Compilando el software . . . . . . . . . . . . . . . . . . . . . . 67

B.3. Ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

B.3.1. Calibrando la cámara . . . . . . . . . . . . . . . . . . . . . . . . 67

B.3.2. Ejecutando el software . . . . . . . . . . . . . . . . . . . . . . . 68

C. Diagrama de tareas 71

II

Índice de figuras

1.1. Ejemplo de reconstrucción 3D. . . . . . . . . . . . . . . . . . . . . . . . 1

1.2. Ejemplo del objetivo del proyecto. . . . . . . . . . . . . . . . . . . . . . 2

1.3. Esquema del proceso global del proyecto. . . . . . . . . . . . . . . . . . 3

2.1. Modelo de cámara de pinhole. . . . . . . . . . . . . . . . . . . . . . . . 7

2.2. Transformación de longitud a píxeles . . . . . . . . . . . . . . . . . . . . 8

2.3. Ejemplo de distorsión radial. . . . . . . . . . . . . . . . . . . . . . . . . 10

3.1. Homografía inducida por un plano. . . . . . . . . . . . . . . . . . . . . . 12

3.2. Ejemplo de homografía. . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.1. Nube no-densa de puntos 3D . . . . . . . . . . . . . . . . . . . . . . . . 15

4.2. Ejemplo de matriz de preferencia/consenso. . . . . . . . . . . . . . . . . 17

5.1. Gráfica del número de hipótesis en función del número de puntos. . . . . 20

5.2. Ejemplo de información redundante. . . . . . . . . . . . . . . . . . . . . 24

5.3. Comparativa del chequeo de la fotoconsistencia. . . . . . . . . . . . . . . 27

6.1. Ejemplo de algunos keyframes del vídeo de la habitación 1. . . . . . . . . 31

6.2. Comparación de tiempos relativos para la reconstrucción de habitación 1. 32

6.3. Reconstrucción no-densa de la habitación 1. . . . . . . . . . . . . . . . . 32

6.4. Reconstrucción densa basada en planos de la habitación 1. . . . . . . . . 33

6.5. Ejemplo de algunos keyframes del vídeo de la habitación 2. . . . . . . . . 34

6.6. Reconstrucción no-densa de la habitación 2. . . . . . . . . . . . . . . . . 34

6.7. Comparación de tiempos relativos para la reconstrucción de habitación 2. 35

6.8. Reconstrucción densa basada en planos de la habitación 2. . . . . . . . . 36

6.9. Ejemplo de algunos keyframes del vídeo de la encimera. . . . . . . . . . 37

III

6.10. Comparación de tiempos relativos para la reconstrucción de la encimera. 38

6.11. Reconstrucción no-densa de la encimera . . . . . . . . . . . . . . . . . . 38

6.12. Reconstrucción densa basada en planos de la encimera. . . . . . . . . . . 39

6.13. Ejemplo de algunos keyframes del vídeo del escritorio. . . . . . . . . . . 40

6.14. Reconstrucción no-densa del escritorio . . . . . . . . . . . . . . . . . . . 41

6.15. Comparación de tiempos relativos para la reconstrucción del escritorio. . 41

6.16. Reconstrucción densa basada en planos del escritorio. . . . . . . . . . . . 42

A.1. Miniaturas de los keyframes utilizados para la reconstrucción de lahabitación 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

A.2. Vista de la reconstrucción de la habitación 1. . . . . . . . . . . . . . . . . 51

A.3. Otra vista de la reconstrucción de la habitación 1. . . . . . . . . . . . . . 52

A.4. Miniaturas de los keyframes utilizados para la reconstrucción de lahabitación 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

A.5. Vista de la reconstrucción de la habitación 2. . . . . . . . . . . . . . . . . 54

A.6. Otra vista de la reconstrucción de la habitación 2. . . . . . . . . . . . . . 55

A.7. Miniaturas de los keyframes utilizados para la reconstrucción de laencimera. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

A.8. Vista de la reconstrucción de la encimera. . . . . . . . . . . . . . . . . . 58

A.9. Otra vista de la reconstrucción de la encimera. . . . . . . . . . . . . . . . 59

A.10.Otra vista de la reconstrucción de la encimera. . . . . . . . . . . . . . . . 60

A.11.Miniaturas de los keyframes utilizados para la reconstrucción del escritorio. 61

A.12.Miniaturas de los keyframes utilizados para la reconstrucción delescritorio (cont. A.11). . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

A.13.Vistas de la reconstrucción del escritorio obtenida por el método Online. . 63

A.14.Vistas de la reconstrucción del escritorio obtenida por el método Live. . . 64

B.1. Inicialización del software. . . . . . . . . . . . . . . . . . . . . . . . . . 68

B.2. Vistas de la aplicación. . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

C.1. Diagrama de gantt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

IV

Índice de tablas

5.1. Tiempos de cómputo para 1000 hipótesis con 500 puntos. . . . . . . . . . 20

5.2. Ejemplo de homografías y diferentes coeficientes de correlación. . . . . . 22

5.3. Diferencia del coeficiente de correlación según el sentido de la homografía 23

6.1. Parámetros de los cuatro métodos de reconstrucción definidos. . . . . . . 29

6.2. Comparación del rendimiento para la reconstrucción de habitación 1. . . . 31

6.3. Comparación del rendimiento para la reconstrucción de habitación 2. . . . 35

6.4. Comparación del rendimiento para la reconstrucción de la encimera. . . . 37

6.5. Comparación del rendimiento para la reconstrucción del escritorio. . . . . 40

V

VI

Capítulo 1

Introducción

El objetivo fundamental de la visión por computador es, en pocas palabras, que unordenador sea capaz de ver. Dentro de la visión por computador, la visión 3D (Figura 1.1)se ocupa de la estimación tridimensional de una escena y del movimiento de una cámaradentro de ella partiendo únicamente de la información contenida en las imágenes y deuna manera totalmente automatizada. La visión 3D tiene múltiples campos de aplicación:por ejemplo, navegación o construcción de mapas para robótica móvil; o inserciones derealidad aumentada en secuencias de vídeo.

Figura 1.1: Ejemplo de reconstrucción 3D. Reconstrucción del coliseo romano [2] a partir de2.097 imágenes.

En su estado actual, la visión 3D es capaz de proporcionar de manera muy precisa lalocalización 3D de un conjunto no-denso de puntos y la localización 3D de las cámaras.Sin embargo, la reconstrucción densa de escenas es todavía difícil y computacionalmentecara. En este proyecto se aborda la reconstrucción 3D densa en entornos dominados porsuperficies planares. El interés de dicho tipo de escenas radica en que la mayoría deescenas de interior y de escenas urbanas están formadas por planos.

1

El objetivo del proyecto es, por consiguiente, la estimación 3D densa basada enplanos de una escena a partir de una secuencia de vídeo de dicha escena. Para ello,se toma como punto de partida el estado del arte en reconstrucción 3D no-densa (quenos proporcionará la estimación 3D de un conjunto de puntos no-denso). A partir dedicho conjunto de puntos se estiman los planos dominantes de manera automatizada y secomprueba su consistencia geométrica y fotométrica con las imágenes de la secuenciamediante homografías. También se considera la continuidad temporal de los planosestimados a través de los distintos frames que componen la secuencia.

Para alcanzar dicho objetivo se parte de un sistema de reconstrucción 3D en tiemporeal (PTAM [5], acrónimo de Parallel Tracking and Mapping) y de un sistema deestimación multi-modelo que se utiliza para extraer los planos de la reconstrucción 3Dde PTAM llamado J-Linkage [9, 10]. Las tareas que se han desarrollado incluyen adaptarel algoritmo J-Linkage a la estimación producida por PTAM, analizar su funcionamientoy estudiar y proponer modificaciones para mejorar los resultados. El lenguaje deprogramación utilizado es C++ y se han utilizado las librerías de computación geométricaCGAL [1] y el código fuente de PTAM y J-Linkage.

En la Figura 1.2 se muestra un ejemplo de cómo una reconstrucción no-densa depuntos 3D es completada por medio de la obtención de los planos dominantes de la escena,todo ello obtenido únicamente a partir una secuencia de vídeo.

(a) Algunos frames del vídeo

(b) Nube no-densa de puntos. (c) Reconstrucción basada en planos.

Figura 1.2: Ejemplo básico del proyecto. A partir de una secuencia de vídeo se obtiene unareconstrucción 3D no-densa (Figura 1.2b). Las reconstrucción se densifica asumiendo un modelomultiplanar (Figura 1.2c).

2

1.1. Breve resumen del algoritmo

El proceso estudiado en el proyecto para la reconstrucción densa basada en planos entiempo real se realiza en dos etapas.

En primer lugar se estima una reconstrucción 3D no-densa. Se calculan las cámarasy los puntos 3D de forma incremental para cada nuevo keyframe de vídeo. Para ellose utiliza un sistema basado en SFM (Structure From Motion) llamado PTAM [5] quese explicará más adelante. Puesto que el modelo obtenido es no-denso y contiene muypoca información acerca de la escena real, es necesario ampliar este modelo con una faseadicional.

En segundo lugar se densifica la reconstrucción asumiendo un modelo multiplanar.Se estiman los planos dominantes de la escena a partir de los puntos calculados, paralo cual se utiliza el algoritmo de estimación multimodelo J-Linkage, que hace uso de laspropiedades geométricas de los puntos 3D, y mediante homografías se aceptan o rechazandichos planos y se unifica la nueva información con la obtenida en anteriores keyframes.

En la Figura 1.3 se muestra el esquema del proceso realizado para la reconstrucción3D.

Figura 1.3: Esquema del proceso global del proyecto.

1.2. Organización de la memoria

El documento de la memoria de este proyecto está organizado de la siguiente manera.En los capítulos 2, 3 y 4 se detallan las bases teóricas y modelos matemáticos utilizadosen el proyecto, así como del software utilizado. Seguidamente, en el capítulo 5 sedescriben las contribuciones particulares de este proyecto fin de carrera respecto a loscapítulos anteriores. En el capítulo 6 se resumen los resultados experimentales obtenidos,mostrando la mejora temporal obtenida. Y finalmente, en el capítulo 7 se presentan lasconclusiones y lineas de trabajo futuro.

Para terminar, se adjuntan tres anexos. En el anexo A se presentan los datos completosde los experimentos. El anexo B corresponde con el manual de uso e instalación de laaplicación. Y en el anexo C se muestra el diagrama de las tareas realizadas a lo largo delproyecto.

3

4

Capítulo 2

Reconstrucción 3D no-densa a partir devídeo

La base principal sobre la que se desarrolla el proyecto es PTAM [5], acrónimode Parallel Tracking and Mapping. Éste es un software de reconstrucción 3D no-densaen tiempo real que ya ha sido previamente utilizado en visión por computador variosproyectos [7] y [6].

Las principales características del método empleado pueden ser resumidas en lossiguientes puntos:

El tracking y el mapping están separados, y se ejecutan en dos threads paralelos.

El mapping está basado en keyframes, los cuales se procesan usando técnicaspropias del procesamiento en batch (Bundle Adjustment [4]).

El mapa se inicializa mediante dos imágenes (5-Point Algorithm [8]).

Los puntos nuevos se inicializan mediante una búsqueda epipolar.

Se mapea un elevado número de puntos (del orden de miles).

A continuación se explica superficialmente el sistema de representación del entorno, elmétodo mediante el cual se realiza el tracking del mapa y el modelo de cámara usado.Para más información ver [5].

5

2.1. Construcción del mapa

El mapa consiste en una colección de M puntos característicos localizados en unsistema de coordenadas del mundo W . El punto j-ésimo del mapa (p j) tiene coordenadasp jW =

(x jW ,y jW ,z jW,1

)T en el sistema de coordenadas W .

El mapa también contiene N keyframes, los cuales son imágenes del vídeo tomadasen varios puntos distintos del tiempo. Cada keyframe tiene asociado un sistema decoordenadas centrado en la cámara, denotado por Ci para el i-ésimo keyframe. Latransformación entre este sistema de coordenadas y el sistema de coordenadas del mundoes entonces ECiW .

2.2. Tracking de características

En esta sección se describen las operaciones realizadas por el sistema de tracking,asumiendo que ya ha sido generado previamente un mapa de puntos 3D. El sistemade tracking recibe imágenes del vídeo y mantiene una estimación en tiempo real de laposición de la cámara relativa al mapa construido. Para cada frame, el sistema realiza elsiguiente procedimiento:

1. Se adquiere un nuevo frame y se genera una estimación inicial de la posición de lacámara a partir de un modelo de movimiento.

2. Se proyectan los puntos del mapa sobre la imagen de acuerdo con la estimacióninicial de la posición de la cámara.

3. Se busca en la imagen un pequeño número de puntos característicos (50).

4. Se actualiza la estimación de la posición de la cámara a partir de las corresponden-cias.

5. Se re-proyecta un número mayor de puntos característicos (1000) y se buscan en laimagen.

6. Se calcula la estimación final de la posición de la cámara a partir de todas lascorrespondencias encontradas.

6

2.3. Modelo de cámara y proyección

Para proyectar puntos del mapa en el plano de la imagen, primero es necesario definirel modelo de cámara que se va a utilizar. En este caso se utiliza una función de proyecciónde cámara pinhole.

El modelo de pinhole para una cámara queda definido mediante un sistema decoordenadas ortogonales cuyo origen de coordenadas es el centro óptico de la cámara,que es el punto donde convergen los rayos de luz, y el plano de imagen situado a unadistancia f del centro óptico en el que se ubican los píxeles obtenidos por la cámara enuna imagen. Esta distancia f se conoce como distancia focal de la cámara.

Siguiendo este modelo, la relación de un punto de la escena pe = (xe,ye,ze) con sucorrespondiente punto del plano imagen pi = (xi,yi) respecto a un píxel de origen en laimagen p0 = (x0,y0) es proporcional a la distancia focal (Figura 2.1).

xi = fxe

zeyi = f

ye

ze(2.1)

f

Z

X

Y

centro óptico

plano imagen

píxel origen

punto imagen(xi,yi,f)

(x0,y0)

punto escena(xe,ye,ze)

Figura 2.1: Modelo de cámara de pinhole y relación geométrica entre un punto del entorno 3D ysu correspondiente píxel en la imagen.

Para representar el entorno 3D se utilizan las coordenadas homogéneas; cada puntoestá definido por cuatro coordenadas (x,y,z,w) y su ubicación en el espacio 3D seobtiene dividiendo las tres primeras por la última, que se denomina factor de escala. Sila coordenada w es cero, lo que se está representando es la dirección de un punto que seencuentra en el infinito, es decir, un vector. El uso de coordenadas homogéneas permitetratar todas las transformaciones geométricas como una multiplicación de matrices,motivo por el cual este sistema es ampliamente utilizado en geometría proyectiva.

De esta forma, si se define la relación obtenida de la Figura (2.1) en coordenadashomogéneas se obtiene:

7

uvs

=

f 0 0 00 f 0 00 0 1 0

xeyeze1

(2.2)

xi = u/s yi = v/s

donde las coordenadas xi e yi definen un punto del plano imagen (pi) respecto a un píxelorigen p0 = (x0,y0) (Figura 2.2). Las coordenadas obtenidas de esta manera vienen dadasen una unidad métrica (definen un punto) y son relativas al píxel de origen de la imagen(que no es un punto). Por lo tanto, es necesario transformarlas a píxeles de la imagen,para lo cual se necesitan dos parámetros adicionales (kx y ky) que definen el tamaño depíxel, ya que los píxeles son normalmente rectangulares (no cuadrados). De esta formalas coordenadas en píxeles son:

{xpix = kxxi + x0ypix = kyyi + y0

}(2.3)

x0

punto imagen(xi,yi,f)

y0 centro imagen

y

x

ypix

xpix

Figura 2.2: Transformación de longitud a píxeles

Del mismo modo que con la relación anterior, si se define esta nueva relación obtenidaen la Figura 2.2 en coordenadas homogéneas se obtiene:

u′

v′

s′

=

fx 0 x0 00 fy y0 00 0 1 0

xeyeze1

(2.4)

xpix = u′/s′ ypix = v′/s′

donde fx = f kx y fy = f ky.

Se dice que esta matriz es la matriz de calibración interna (K) multiplicada por lamatriz de proyección perspectiva [I | 0]:

8

fx 0 x0 00 fy y0 00 0 1 0

=

fx 0 x00 fy y00 0 1

1 0 0 00 1 0 00 0 1 0

= K [I | 0] (2.5)

Esta ecuación (2.4) es válida si (xe,ye,ze) son coordenadas referenciadas en el sistemade coordenadas de la cámara C. En el caso de que estas coordenadas estén referenciadasrespecto a un sistema de coordenadas cualquiera (por ejemplo el sistema de coordenadasdel mundo W ) será necesario realizar un cambio de coordenadas entre ambas.

Una transformación entre coordenadas se compone de una rotación y una traslación.La rotación está definida por una matriz R de tamaño 3× 3 que indica la rotación de lacámara respecto a la base de referencia. La traslación es un vector t de tamaño 3×1 queindica la distancia entre el centro óptico de la cámara y el centro de la base de referencia.

La relación entre un punto referido en el sistema de coordenadas del mundo W(p jW ), y sus coordenadas en el sistema de coordenadas de la cámara C (p jC) se obtienemultiplicando por una matriz de cambio de coordenadas 4×4 denotada por ECW , la cualrepresenta la posición de la cámara:

p jC = ECW p jW (2.6)

donde

ECW =

[R3×3 t3×101×3 1

]El subíndice CW puede ser leído como “sistema de coordenadas C a partir del sistema

de coordenadas W”.

Por lo tanto, la relación final entre un punto 3D cualquiera de coordenadas (x,y,z,1)y el píxel en la imagen para el modelo de pinhole, se puede escribir en coordenadashomogéneas de la siguiente forma:

uvs

= K [I | 0]ECW

xyz1

(2.7)

De la ecuación anterior se extrae la definición de la matriz de cámara, denotadanormalmente por la letra P:

P = K [I | 0]ECW (2.8)

Este modelo es suficiente en la mayoría de los casos aunque no está exento de errores.La distorsión radial introducida por la lente de la cámara (Figura 2.3) hace que la validezde este modelo sea peor conforme se acerca a los límites de la imagen.

9

Figura 2.3: Ejemplo de distorsión radial.

Por este motivo se emplea una función de proyección de cámara pinhole que soportalentes que presentan una pequeña distorsión radial. El modelo de distorsión radial quetransforma r→ r′ es el modelo FOV de [3]. Suponiendo los parámetros de la cámara parala distancia focal ( fx, fy), punto principal (x0,y0) y distorsión (ω):

uvs

=

fxr′r 0 x0 0

0 fyr′r y0 0

0 0 1 0

[ R3×3 t3×101×3 1

]xyz1

(2.9)

r =

√x2 + y2

z2 (2.10)

r′ =1ω

arctan(

2r tanω

2

)(2.11)

10

Capítulo 3

Geometría de múltiples vistas y escenasplanas

3.1. Definición de un plano

En primer lugar, para comprender la geometría proyectiva inducida por un plano, esnecesario definir la representación matemática de un plano.

Un plano π queda definido por un vector normal ~n = (A,B,C), y un punto conocidoperteneciente al plano P0 = (x0,y0,z0). La idea es que un punto P = (x,y,z) pertenece alplano si y solo si el vector trazado desde P0 a P es perpendicular a~n. Teniendo en cuentaque dos vectores son perpendiculares si y solo si su producto escalar es cero, se deduceque el plano puede ser expresado como el conjunto de todos los puntos P tal que

~n · (P−P0) = 0,

lo que se puede reordenar para obtener lo que comúnmente se conoce como la ecuacióngeneral del plano,

Ax+By+Cz+D = 0, (3.1)

dondeD =−Ax0−By0−Cz0.

Por lo tanto, es posible definir la ecuación general del plano mediante tres puntos noalineados, siendo estos puntos, P1 = (x1,y1,z1), P2 = (x2,y2,z2) y P3 = (x3,y3,z3).

~n = (P3−P1)× (P2−P1) = (A,B,C) (3.2)

D =−Ax1−By1−Cz1

11

3.2. Homografías

Una vez que se han obtenido los posibles planos a partir de un conjunto de puntos3D, como se ha visto en el capítulo 4, es necesario realizar una comprobación fotométricade los mismos. Para ello se hace uso de la geometría proyectiva entre dos cámaras y unplano del mundo, según la cual, una imagen que contiene puntos pertenecientes a un planoestá relacionada con los correspondientes puntos de la imagen de una segunda vista poruna homografía, tal y como se muestra en la Figura 3.1. Se dice que el plano induce unahomografía entre las vistas. Una homografía inducida por un plano transfiere puntos deuna de las vistas a la otra siempre y cuando sean imágenes de puntos pertenecientes alplano. Esta relación se puede expresar mediante una matriz 3×3 denominada H.

Figura 3.1: Homografía inducida por un plano. El rayo correspondiente al punto x es extendidohasta cortar el plano π en el punto xπ ; este punto es proyectado a un punto x′ en la segundaimagen. El mapeo de x a x′ es la homografía inducida por el plano π . Hay una perspectiva,x = H1πxπ , entre el plano π del mundo y el plano de la primera imagen; y una perspectiva,x′ = H2πxπ , entre el plano del mundo y el plano de la segunda imagen. La composición de las dosperspectivas es una homografía, x′ = H2πH−1

1πx = Hx, entre los planos de las imágenes.

Supóngase un plano π en el espacio 3D que está definido por sus coordenadas en elmundo. A continuación se muestra una expresión explícita para la homografía inducida.Dadas las matrices de cámara (2.8) para las dos vistas

P = K [I | 0] P′ = K [R | t]

y un plano definido πT X = 0 con π =(nT ,D

)T , entonces la homografía inducida por elplano es x′ = Hx con

H = K′(R− tnT/D

)K−1. (3.3)

Para más detalles acerca de cómo se obtiene este resultado se puede consultar [4].

12

En este proyecto se utilizan las homografías para realizar la comprobación de lafotoconsistencia de los planos previamente estimados mediante métodos geométricos. Deesta manera, si el plano existe en la realidad, entonces la imagen resultado después deaplicar la homografía será muy similar a la original.

El cálculo de las homografías entre dos vistas se ha realizado de la siguiente manera.El objetivo es obtener la matriz H que relaciona los píxeles de ambas imágenes. Como seha visto en el capítulo 2, no es necesario calcular la matriz de calibración de la cámara K,puesto que ya está disponible. Los parámetros que son necesarios calcular para utilizar laecuación (3.3) son la rotación R y la traslación t de la cámara C′ respecto de la cámara C.Para lo cual se utiliza la matriz 4× 4 denotada por ECW que representa la posición de lacámara C en el sistema de referencia del mundo W (ver capítulo 2).

EC′C = E ′C′W E−1CW

Después es necesario definir el plano en el sistema de coordenadas de la cámara C.Para ello se multiplica el vector normal del plano (3.2) en coordenadas homogéneas delmundo nW = (AW ,BW ,CW ,0) por ECW :

nC = ECW nW

Con esto se obtiene el vector normal referenciado en el sistema de coordenadas dela cámara C. Y por último, para calcular el parámetro restante D se elige un puntocualquiera perteneciente al plano π en el sistema de coordenadas del mundo W tal quepπW = (x,y,z,1), se cambian sus coordenadas al sistema de coordenadas de la cámara Cpara obtener pπC = (x,y,z,1) y con las nuevas coordenadas de este punto que pertenece alplano se calcula el valor de D, como se ha mostrado en la sección 3.1:

D =−Ax1−By1−Cz1

Con estos valores ya se puede obtener la matriz 3×3 denominada H que se utilizarápara calcular la imagen homografía. En este punto, se multiplica la matriz H sobre cadapíxel de la imagen C para obtener el píxel correspondiente de la imagen C′ (Ver Figura3.2a). De esta forma es posible reconstruir píxel a píxel el plano de la imagen C a partirde la imagen C′. Como se aprecia en la Figura 3.2b, la parte de la imagen que perteneceal plano que induce la homografía (la hoja de papel), se corresponde perfectamente conla imagen original. Mientras que la taza, que no pertenece al plano, no se corresponde.

13

(a) Correspondencia establecida mediante la matriz H.

(b) Superposición de la imagen homografía y la imagen original.

Figura 3.2: Ejemplo de homografía. En la Figura 3.2a se muestra la correspondencia establecidapor la matriz H. La homografía se calcula aplicando esta matriz sobre todos los píxelesde la imagen original. En la Figura 3.2b se observa que la hoja de papel se correspondedespués del cálculo de la homografía, mientras que la taza, que no pertenece al plano, difiereconsiderablemente.

14

Capítulo 4

Estimación multimodelo

En este proyecto se utiliza una modificación del algoritmo de estimación multimodeloJ-Linkage [9, 10] para buscar planos a partir de un conjunto de puntos 3D. Las principalescaracterísticas de este algoritmo son que no requiere ningún conocimiento previo delnúmero de planos, así como su tolerancia a puntos debidos al ruido. En la Figura 4.1se muestra un ejemplo de un conjunto no-denso de puntos sobre los que se buscarían losplanos dominantes.

Figura 4.1: Nube no-densa de puntos 3D a partir de los cuales se buscarían planos.

15

El primer paso del algoritmo consiste en la creación de un amplio conjunto de hipótesis deplanos, las cuales se crean a partir de grupos de tres puntos. Es importante tener en cuentaque los puntos pertenecientes a un mismo plano tienden a estar situados cerca unos deotros, por lo que la estrategia de creación de las hipótesis no debería ser completamentealeatoria. J-Linkage selecciona todos excepto el primer punto de cada hipótesis siguiendouna probabilidad exponencial. De forma que si un punto xi ha sido seleccionado, entoncesx j tiene la siguiente probabilidad de ser elegido:

P(x j|xi

)=

{1Z exp− ||x j−xi||2

σ2 x j 6= xi,

0 x j = xi.(4.1)

donde Z es la constante de normalización y σ es elegida heurísticamente. Esto tiene uncoste computacional de O

(n2) donde n es el número de puntos, puesto que la distancia

euclídea debe ser calculada para todos los pares de puntos.

Esta estrategia para la creación de hipótesis es adecuada en aplicaciones en batchdonde el tiempo de cómputo no es crítico. En el caso de aplicaciones de tiemporeal, calcular una probabilidad definida sobre las distancias entre todos los puntos esdemasiado costosa computacionalmente. Es por ello que existe una variante según la cualla probabilidad de elegir un punto x j depende de si está o no entre los k-vecinos del puntoxi previamente seleccionado, es decir:

P(x j|xi

)=

{Palta x j ∈ k_vecinos(xi)

Pba ja x j /∈ k_vecinos(xi)(4.2)

con Palta� Pba ja.

Una vez que se han generado los planos hipótesis, se calcula el preference set paracada punto. El preference set de un punto es el conjunto de hipótesis tales que su distanciaal punto es menor que un umbral ε . Del mismo modo, el consensus set de una hipótesis esel conjunto de puntos tales que su distancia a la hipótesis es menor que un umbral ε . Parailustrar este concepto, supóngase que se construye una matriz N×M (Figura 4.2) dondela celda (i, j) es 1 si el punto i se encuentra a una distancia de la hipótesis j menor que unumbral ε . Cada columna de dicha matriz es la función característica del consensus set deuna hipótesis, mientras que cada fila es la función característica del preference set de unpunto dado. La observación clave es que los puntos pertenecientes a la misma estructuratendrán un preference set similar; en otras palabras, se agruparán en el mismo espacioconceptual {0,1}M.

16

Figura 4.2: Ejemplo de matriz de preferencia/consenso. Las columnas son los consensus sets(CS), mientras que las filas son los preference sets (PS).

Teniendo en cuenta esto, J-Linkage utiliza un clustering aglomerativo para encontrarplanos. Al comienzo, cada punto pertenece a un cluster separado, siendo fusionados encada los dos clusters con la mínima distancia de Jaccard. El preference set de un clusterfusionado es igual a la intersección de los de los clusters originales. La distancia entre dosclusters es definida por medio de la distancia de Jaccard entre sus preference sets. Dadosdos sets A y B, la distancia de Jaccard es:

dJ (A,B) =| A∪B | − | A∩B |

| A∪B |(4.3)

La distancia de Jaccard devuelve un valor entre 0 (sets idénticos) y 1 (sets disjuntos).El valor de corte es 1, lo que significa que el algoritmo solamente agrupa elementoscuyos preference set se solapan. Los puntos que no pertenecen a ningún modelo aparecencomo clusters de pequeño tamaño. El procedimiento de agrupación tiene un costecomputacional de O

(n2) para la construcción y O

(n2) para calcular la clusterización.

Como resultado de la ejecución del algoritmo J-Linkage se obtienen clusters de puntosque pertenecen al mismo plano. Es importante destacar que los puntos que no pertenezcanclaramente a ningún plano serán devueltos en clusters de reducido tamaño, mientras quelos clusters de puntos que realmente pertenezcan a planos de la escena serán de un tamañomayor. Por lo tanto, será necesario filtrar dichos clusters y eliminar aquellos cuyo tamañosea inferior a un valor predefinido n, que en este caso se ha fijado en 20.

Una vez que se tienen los puntos agrupados según su pertenencia a los planos de laescena, se obtienen las ecuaciones generales (3.1) que los definen por medio de un ajustepor mínimos cuadrados.

17

18

Capítulo 5

Reconstrucción 3D densa basada enplanos a partir de vídeo

5.1. Estimación multimodelo en tiempo real

Como ya se ha visto en el capítulo 4, el algoritmo utilizado para realizar la estimaciónmultimodelo tiene una complejidad computacional elevada, por lo que es importanteutilizar algún tipo de estrategia que permita el uso del mismo en una aplicación en tiemporeal. En esta sección se exponen las técnicas utilizadas para reducir el tiempo de cómputodel algoritmo.

Una de las características más relevantes de las aplicaciones en tiempo real consiste enque los datos aparecen en paquetes de forma gradual conforme el tiempo avanza, debiendoser procesados en resultados parciales antes de que aparezca el siguiente paquete de datos,es decir, son aplicaciones secuenciales. Para cumplir con esta premisa, se van a utilizarlos keyframes obtenidos durante la reconstrucción 3D no-densa (ver capítulo 2), de formaque se realizarán los cálculos únicamente sobre los puntos visibles en el keyframe actual.

La calidad del resultado obtenido va a depender en gran medida del conjunto de lashipótesis creadas (ver capítulo 4). Sin embargo, el proceso de creación de hipótesis puedellegar a ser un proceso demasiado lento para una aplicación en tiempo real. Por ello, sehan explorado tres posibilidades diferentes para la creación de nuevas hipótesis.

1. Utilizar una probabilidad exponencial. Esta aproximación es la utilizada por elalgoritmo original, en donde el conjunto de puntos sobre el que se suele ejecutarel algoritmo es muy grande (del orden de 10000) y la elección de buenas hipótesises determinante para obtener un resultado aceptable. Sin embargo, el cálculo de estaprobabilidad es demasiado costoso como para tenerla en cuenta en el desarrollo deuna aplicación en tiempo real.

2. Utilizar un K-Tree con los k vecinos más cercanos. Esta aproximación es la que sepropone en [9, 10]. Se trata de una solución de compromiso, en la que se reduce el

19

tiempo de cómputo, al mismo tiempo que se sigue explotando la propiedad relativaa la mayor propensión de que los puntos más cercanos entre sí pertenezcan al mismoplano que los que están más alejados.

3. Utilizar una probabilidad aleatoria. La principal ventaja de esta aproximación resideen el tiempo de cómputo, notablemente inferior con respecto a las dos opcionesanteriores. Por contra, deja de utilizarse una heurística para la creación del mejorconjunto de hipótesis posible.

Se han realizado experimentos con el objetivo de cuantificar la diferencia de tiemposentre estas tres posibles alternativas. Los resultados pueden verse en la Tabla 5.1, dondese aprecia que el uso de una probabilidad aleatoria tiene un coste temporal doce vecesmenor que K-vecinos y diecisiete veces menor que una probabilidad exponencial.

Probabilidad Tiempo (seg)

Exponencial (σ = 0,5) 2.768

K-vecinos (k = 10) 1.969

Aleatoria 0.161

Tabla 5.1: Tiempos de cómputo para 1000 hipótesis con 500 puntos.

La utilización de una probabilidad aleatoria está motivada principalmente por lareducción del tiempo de cómputo que ello conlleva. Si se utilizara este método sobre unconjunto de puntos muy grande (del orden de miles), el resultado sería notablemente peorque en el caso de utilizar una probabilidad exponencial. Esto se debe principalmente a queel número de posibles hipótesis se dispara con el incremento del número de puntos (Figura5.1) y entonces sí que es determinante la elección de buenas hipótesis. Sin embargo, enesta aplicación el algoritmo se utiliza sobre los puntos visibles en un único keyframe, porlo que el número de puntos es notablemente inferior y la diferencia entre un método y otrono va a ser un factor decisivo. El problema asociado que puede surgir es que el algoritmono encuentre los planos en un determinado keyframe, en cuyo caso es posible que sí quelo haga en el siguiente.

Figura 5.1: Gráfica del número de hipótesis en función del número de puntos.

20

5.2. Consistencia fotométrica de los planos estimados

El método usado para la estimación de planos es un algoritmo que funcionaexcepcionalmente bien cuando existe una densidad de puntos muy alta. Por contra, elsistema desarrollado realiza los cálculos en tiempo real con un número de puntos menordel que sería deseable para obtener el óptimo resultado de la estimación. Lo que ocurre esque la estimación de los planos es menos precisa ya que se cuenta con un menor númerode puntos para descubrir la estructura subyacente. Además, se realiza la estimación deplanos basándose únicamente en información geométrica (localización 3D de los puntos).Por ello, es necesario comprobar mediante un chequeo de la fotoconsistencia que losplanos calculados realmente pertenecen a la escena.

Para realizar esta comprobación se utilizan las homografías explicadas en el capítulo3. Mediante esta técnica se puede calcular cómo debería verse una determinada parte de unplano desde otro punto de vista. En este caso, si el plano está bien estimado y realmenteexiste en la escena, el resultado de la homografía será una imagen muy parecida a laoriginal. Por lo tanto, para que un plano se considere que está bien estimado, es necesarioque todos sus píxeles correspondientes sean aproximadamente iguales en cada una delas imágenes y en sus homografías. Para medir el grado de dependencia se calcula lacorrelación cruzada normalizada (5.1). Siendo ~x e ~y dos vectores y x e y sus respectivasmedias, el coeficiente de correlación r entre ambos es:

r =

N∑

i=1(xi− x)∗ (yi− y)√

N∑

i=1(xi− x)2 ∗

N∑

i=1(yi− y)2

(5.1)

En geometría, el valor r de la correlación es el coseno del ángulo que forman los dosvectores estudiados. Valores positivos de r indican que ambos vectores forman un ángulopequeño entre sí (sus valores son parecidos o iguales en caso de que r = 1), y además elsentido de ambos vectores es el mismo. Si el valor de r es cercano a 0 pero positivo, esque los vectores son notablemente diferentes y si el valor de r es negativo implica quelos vectores llevan sentido opuesto. Por lo tanto, cuanto más positivo y cercano a 1 seael valor r, más parecidos serán entre sí los vectores estudiados y por consiguiente másparecidos serán los respectivos píxeles de las imágenes.

Para calcular la correlación se ha experimentado con tres métodos diferentes:

1. Se calcula el coeficiente de correlación sobre imágenes en blanco y negro. Cadapíxel tiene un valor comprendido entre 0 y 255, se insertan los valores de los píxelesque pertenecen al plano en un vector y los valores de los píxeles del resultado de lahomografía en otro vector. Entonces se comparan los vectores obtenidos aplicandola fórmula de la correlación (5.1).

21

2. Se calcula el coeficiente de correlación sobre imágenes en color (RGB). Se agrupanlos tres valores de color de los píxeles correspondientes a un plano en un vector.Si por ejemplo, la celda a comparar tiene un tamaño de 16×16 píxeles, se obtieneun vector de 768, (256 de los valores de color rojo, verde y azul para cada píxel).Entonces se comparan los vectores obtenidos para el mismo plano en las distintasimágenes y se aplica la fórmula de la correlación (5.1).

3. Se calcula el coeficiente de correlación sobre imágenes en color (RGB). Se insertanlos tres valores de color de los píxeles correspondientes a una celda en tres vectoresdiferentes. Entonces se comparan los vectores obtenidos para el mismo plano en lasdistintas imágenes, se aplica la fórmula de la correlación (5.1) para cada uno de lostres vectores y después se hace la media aritmética de los tres resultados obtenidos.

El valor final del coeficiente de correlación de un plano será el mínimo valor obtenidodespués de calcular todas las homografías entre las imágenes en las que aparece elplano. En el caso de que el coeficiente de correlación obtenido esté por debajo de 0,8se asume que el plano no está correctamente estimado; por el contrario, si el coeficientede correlación es igual o mayor, entonces se considera que el plano es correcto.

El resultado obtenido es muy similar para las tres formas de calcular el coeficiente decorrelación. Para ilustrar esto, en la Tabla 5.2 se muestran algunas homografías así comoel coeficiente de correlación obtenido para cada uno de los métodos.

Original Homografía Blanco y Negro RGB Agrupado RGB Separado

0.925276 0.912918 0.910688

0.838635 0.830833 0.833968

0.891285 0.912855 0.894474

Tabla 5.2: Ejemplo de homografías y diferentes coeficientes de correlación.

22

El cálculo de la homografía inducida por un plano entre dos imágenes puede realizarseen ambos sentidos, es decir, se pueden transferir los píxeles de la imagen A a la imagen B,o se pueden transferir los píxeles del a imagen B a la imagen A, resultando el coeficientede correlación diferente, como se muestra en la Tabla 5.3.

Imagen A Imagen B A→ B B→ A

0.950976 0.917980

0.779924 0.837057

Tabla 5.3: Diferencia del coeficiente de correlación según el sentido de la homografía. En estecaso se realiza la homografía del plano formado por el lomo de los libros.

La lógica dicta que si se tienen dos imágenes en las que aparece un mismo plano,el resultado de la correlación de la homografía será mejor cuando se transfieran lospíxeles desde la imagen donde el plano se ve más grande (existe mayor cantidad deinformación), que desde la imagen en donde el plano se ve más pequeño (menor cantidadde información). Sin embargo, en la Tabla 5.3 se muestra cómo esto no siempre es así.Esta aparente incongruencia se debe al número total de píxeles que componen la imagendespués de aplicar la homografía. Si como resultado de la homografía tenemos unaimagen formada por 100 píxeles, una pequeña variación en unos pocos de ellos afectará engran medida al resultado de la correlación, mientras que por el contrario, si como resultadode la homografía obtenemos una imagen formada por 1000 píxeles, el coeficiente decorrelación va a a ser menos sensible a los pequeños cambios producidos en unos pocospíxeles. Este efecto se pone de manifiesto únicamente cuando la diferencia entre el tamañode las imágenes no es demasiado grande; en el momento en que la diferencia de tamañoaumenta, se obtiene mejor resultado transfiriendo los píxeles desde la imagen en la que elplano aparece más grande que desde la imagen en la que el plano es más pequeño.

23

5.3. Consistencia temporal de los planos estimados

El siguiente problema que se encuentra es la temporalidad de los planos. Puesto queel objetivo es la reconstrucción planar de una escena, se han de mantener los planos a lolargo del tiempo con los problemas de consistencia que ello supone. Para llevar a caboeste objetivo, los planos detectados como correctos se guardan en lo que se denominamapa de la escena.

Como ya se ha explicado anteriormente en la sección 5.1, se calculan los planos deforma local únicamente para los puntos que aparecen en un keyframe dado. Suponiendoque estos planos se guardaran en el mapa de la escena directamente, se obtendríauna aplicación bastante rápida, que sería capaz de ejecutarse en tiempo real. Comocontrapartida, muchos de los planos que se detectarían estarían duplicados, ya que haykeyframes que tienen muchos puntos en común y puesto que para cada keyframe seestarían calculando nuevas estimaciones, se van a guardar los mismos planos o muysimilares varias veces. Por lo tanto, el número de planos crecería rápidamente y comoresultado se obtendría un conjunto de modelos demasiado grande con un alto grado deinformación redundante (Figura 5.2).

(a) Inserción de planos directa (66 planos). (b) Reconstrucción incremental (6 planos).

Figura 5.2: Ejemplo de información redundante. Ambas reconstrucciones contienen unainformación similar. En una se han reconocido 66 planos mientras que en la otra tan solo 6.

Como solución a este problema se ha ideado un método para incrementar los planosdetectados con anterioridad en lugar de crear siempre nuevos. Para ello se utiliza unmapa en el cual se mantiene una representación global de los planos que se actualizaperiódicamente con los planos calculados en los siguientes keyframes. Al realizar dichaactualización se pueden dar cinco casos diferentes.

1. Todos los puntos del cluster son nuevos. En este caso simplemente se creaun nuevo plano. En primer lugar se calcula la ecuación general del plano queaproxima los puntos. Para ello se sigue un proceso iterativo en el que se ajusta la

24

ecuación del plano por el método de mínimos cuadrados y se eliminan los outliers(puntos cuya distancia al modelo es mayor que un umbral ε) tantas veces comosea necesario hasta que ya no se eliminan puntos. A continuación se realiza elchequeo de la foto-consistencia del nuevo plano. En el caso de que el resultado seapositivo (correlación cruzada normalizada por encima de 0,8) se almacena el nuevoplano en el mapa y en caso contrario se ignora. Cabe resaltar que como medidapara minimizar los falsos positivos, se introducen cuatro keyframes en lugar desolamente dos, con lo que el número de homografías que se realizan es de cinco enlugar de una.

2. Todos los puntos pertenecen a un plano del mapa. En este caso se puede optarpor no hacer nada. Como alternativa, se puede guardar el nuevo keyframe en elque se ha detectado el plano para utilizarlo en futuras homografías del mismo. Eslógico pensar que guardándose más información sobre el plano se obtendría unareconstrucción más precisa, aunque por otra parte también afectaría al tiempo decómputo.

3. Existen puntos nuevos y de un plano del mapa. En este caso se incrementa elplano al que pertenecen los puntos con los nuevos puntos libres que todavía no hansido clasificados. La metodología empleada es la misma que la utilizada para lacreación de un nuevo plano. El único requisito adicional es que después de calcularla ecuación del plano y de eliminar los outliers, la cantidad de puntos pertenecientesal plano sea mayor que la cantidad original antes de incrementarlo (además de serfoto-consistente). Adicionalmente, en el caso de que el incremento del plano no seaexitoso, ya sea porque la homografía es incorrecta o porque geométricamente no sepuede, se intentará crear un nuevo plano.

4. Existen puntos de n planos del mapa. En este caso se crea un nuevo plano formadopor la unión de los puntos que componen los n planos diferentes. La metodologíaseguida es exactamente la misma que en el caso de incrementar un plano. En el casode que el nuevo plano sea correcto se eliminan los n planos del mapa y se guarda elnuevo, mientras que en el caso de ser incorrecto se deja el mapa como estaba.

5. Existen puntos nuevos y de n planos del mapa. En este caso se crea un nuevoplano formado por la unión de todos los puntos que componen los n planosdiferentes además de los nuevos puntos libres que todavía no han sido clasificados.La metodología seguida es exactamente la misma que en el caso de incrementar unplano. En el caso de que el nuevo plano sea incorrecto, se intenta incrementar uno auno los planos existentes con los puntos nuevos, y si ninguno de los planos se puedeincrementar, entonces se intenta crear un nuevo plano únicamente con los puntosque permanecen sin clasificar.

Mediante el uso de esta aproximación se incrementa el tiempo de cómputo, pero almismo tiempo se consigue reducir el número de planos reconocidos, manteniendo unainformación estructural bastante similar.

25

5.4. Reducir el tiempo de cómputo de la comprobaciónde la consistencia fotométrica

Una vez se ha llegado a este punto, se tiene que añadir algún tipo de heurística parahacer que la comprobación de la consistencia fotométrica de los planos sea lo más rápidaposible. Este es uno de los procedimientos que más tiempo de cómputo requiere. Es aquícuando se introduce una heurística para reducir el número de homografías que se realizanpor cada plano con el objetivo de hacer que la aplicación funcione más rápido y seaadecuada para su uso en tiempo real. La parte más costosa del chequeo de fotoconsistenciaes la realización de un elevado número de homografías. En el caso de que un planoaparezca en n imágenes significa que si se quiere realizar el chequeo entre todas ellas(explosión combinatoria), se van a realizar n!/(2! ∗ (n− 2)!) comprobaciones. Por estemotivo es necesario utilizar algún tipo de heurística con el objetivo de disminuir el númerode homografías que se deben calcular. En este caso se han tenido en cuenta dos posiblessoluciones.

1. Se utilizan todos los los keyframes para realizar la comprobación. La diferenciaen este caso radica en que se calcula la homografía para cada keyframe y para losotros dos keyframes que más puntos de interés en común tienen con el primero.Esta heurística reduce drásticamente el número de homografías a calcular encomparación con la explosión combinatoria, pero sin embargo sigue teniendo uncoste lineal en función del número de imágenes en las que aparece el plano.

2. Se utiliza únicamente el último keyframe. Esta heurística se basa en la premisa deque si el nuevo plano (incrementado o fusionado) ha superado las restriccionesgeométricas, la nueva estimación del plano no ha podido variar demasiadocon respecto al original, por lo que los esfuerzos relativos al chequeo de lafotoconsistencia se pueden centrar únicamente en comprobar las zonas máspróximas a las que se han añadido nuevos puntos, es decir, las zonas que aparecenen el último keyframe. En este caso se calculan las homografías entre el últimokeyframe y los otros cinco keyframes que más puntos de interés en común tienencon el primero, de tal forma que el tiempo de cómputo permanece constanteindependientemente del número de imágenes, siendo un modelo más apto para unaaplicación en tiempo real.

En la Figura 5.3 se muestra una gráfica comparativa en la que se aprecia la reducción delnúmero de homografías con respecto a la explosión combinatoria, poniendo en evidencialas ventajas de los métodos propuestos.

26

Figura 5.3: Gráfica comparativa de las heurísticas para la comprobación de la fotoconsistencia.

5.5. Generación de texturas

Como se ha comentado anteriormente, la motivación principal del proyecto es suutilización en robótica para ser integrado en robots de navegación autónoma. A pesar deque se trata de una característica irrelevante para este propósito, se ha implementado unmétodo de extracción de texturas para los planos calculados, con el objetivo de facilitar alusuario la visualización y comprobación de los resultados obtenidos en la reconstrucción.

En ningún momento se ha pretendido que la implementación de esta característicatenga un rendimiento adecuado para el tiempo real. De hecho el tiempo de cómputode las texturas puede llegar a ser del orden de varios segundos. Por este motivo se haimplementado como una opción que puede ser activada y desactivada por el usuario de laaplicación. Además, esta característica no ha sido diseñada para obtener la mejor calidadde la textura posible, sino como una pequeña guía visual para el chequeo y comprensiónde los planos obtenidos por la aplicación.

Los pasos seguidos para el cálculo de las texturas son los siguientes:

1. Se proyectan todos los puntos que definen el plano sobre el mismo.

2. Se modifica la base de coordenadas original en la que están definidos los puntos porotra en la que el eje z coincide con el vector normal del plano, por lo que todas lasnuevas coordenadas de los puntos tienen como coordenada z cero y, por lo tanto,todos los puntos pueden ser representados únicamente por sus coordenadas x e y.

3. Se calcula la triangulación de delaunay para obtener los triángulos que se mostraránmediante las librerías de OpenGL.

4. Se calcula la textura que le corresponde a cada triángulo. Para ello, simplemente seelige una imagen en la que aparezca dicho triángulo completo y se crea la texturaa partir de ella. Las librerías de OpenGL se encargarán de deformar la imagen paracorregir la posible deformación causada por la perspectiva.

27

28

Capítulo 6

Resultados experimentales

En este capítulo se muestran algunos de los experimentos realizados. Para ello, se handefinido cuatro métodos de reconstrucción distintos, con los que se pretende ilustrar lasventajas temporales obtenidas mediante las heurísticas implementadas. Estos métodos seutilizarán en diferentes escenarios y se compararán sus rendimientos temporales. En laTabla 6.1 se muestra un resumen de los cuatro métodos definidos.

Método Estimaciónmultimodelo

Consistenciafotométrica

Consistenciatemporal

Generaciónde texturas

Tiemporeal

Batch CCT original original si no noBatch SCT original original no no noOnline tiempo real heurística si no noLive tiempo real heurística si no si

Tabla 6.1: Parámetros de los cuatro métodos de reconstrucción definidos. Todos los métodoscalculan la consistencia fotométrica sobre las imágenes en blanco y negro. Batch CCT = BatchCon Consistencia Temporal. Batch SCT = Batch Sin Consistencia Temporal.

Los parámetros utilizados para el diseño de los distintos métodos se explican acontinuación:

Estimación Multimodelo: Se indica el tipo de algoritmo de estimación multimodeloutilizado.

• Original: Algoritmo JLinkage utilizado en aplicaciones en batch y creaciónde nuevas hipótesis de planos siguiendo una función aleatoria.

• Tiempo real: Algoritmo JLinkage modificado para su uso en aplicaciones entiempo real y creación de nuevas hipótesis de planos siguiendo una funciónaleatoria.

29

Consistencia Fotométrica: Se indica el tipo de estrategia utilizada para el cálculode la consistencia fotométrica.

• Original: Estrategia mediante la cual se utilizan todos los keyframes para elcálculo de la consistencia fotométrica.

• Heurística: Estrategia mediante la cual se utiliza únicamente la informaciónrelativa al último keyframe añadido para el cálculo de la consistenciafotométrica.

Consistencia Temporal: Se indica si el método utiliza las estrategias desarrolladaspara la consistencia temporal de los planos reconocidos, o si por el contrario secrean planos nuevos siempre que se detectan.

Generación de Texturas: Se indica si el método realiza el cálculo de las texturasdurante la reproducción del vídeo.

Tiempo Real: Se indica si el algoritmo se esta ejecutando en tiempo real (de formaque es posible que algunos keyframes queden sin procesar), o si por el contrario,se para la reproducción del vídeo cada vez que se necesita más tiempo de cómputo(de forma que se procesan todos los keyframes). De esta forma es posible medir eltiempo necesario para realizar todos los cálculos y compararlo con la duración delvídeo.

A continuación se muestran algunos de los experimentos que se han realizado. En primerlugar se describe un experimento completo y seguidamente se resumen los resultados deotros experimentos. En el anexo A se encuentran los datos completos de todos ellos.

30

6.1. Reconstrucción de habitación 1

En este experimento se procede a la reconstrucción de un entorno de interior muysencillo. En este caso se trata de la reconstrucción de una habitación que se realiza a partirde un vídeo de 48 segundos de duración. Las características propias de este experimentoson:

Existencia de dos planos principales dominantes (pared y cama).

La reconstrucción no-densa es de tamaño medio (1300 puntos).

A continuación se muestran algunos de los keyframes del vídeo.

Figura 6.1: Ejemplo de algunos keyframes del vídeo de la habitación 1. En el anexo A.1 seencuentra el set completo.

Para ilustrar la mejora temporal producida por las heurísticas desarrolladas, se hanejecutado cuatro métodos distintos sobre el mismo vídeo. En la Tabla 6.2 se muestran lostiempos de ejecución para cada uno de los cuatro métodos y en la Figura 6.2 se muestrauna gráfica comparativa de los tiempos relativos obtenidos.

Método Tiempo en segundos Tiempo relativo Planos reconocidosBatch CCT 80 1,666 4Batch SCT 55 1,145 30Online 49 1,020 3Live 48 1 4

Tabla 6.2: Comparación del rendimiento para la reconstrucción de habitación 1.

Se observa como el método Batch CCT es un 66% más lento de lo necesario paraejecutarse en tiempo real, mientras que el método Online tan solo un 2%. Por otrolado, el método Batch SCT se ejecuta en un tiempo muy razonable (tan solo un 14%más lento), sin embargo mediante este método se obtiene una reconstrucción compuestapor 30 planos, en su mayoría repetidos y con información redundante. El método Liveúnicamente se ha saltado 2 keyframes que no han sido procesados, sin que se haya vistoafectada la calidad de la reconstrucción obtenida.

31

Figura 6.2: Comparación de tiempos relativos para la reconstrucción de habitación 1.

Figura 6.3: Reconstrucción no-densa de la habitación 1. Esta reconstrucción está compuesta por1169 puntos y no existe una densidad de puntos suficiente como para apreciar fácilmente a simplevista la existencia de ningún plano dominante.

El resultado obtenido por cada uno de los cuatro métodos ha sido muy similar, por ellosolamente se va a mostrar la reconstrucción obtenida por el método Live. En la Figura 6.3se muestra la reconstrucción no-densa calculada en este experimento.

Esta reconstrucción ha sido calculada de forma incremental y en tiempo real. Porello se trata de un modelo con una baja densidad de puntos, que no contiene demasiadainformación sobre la escena. Si se quisiera obtener un modelo más denso formado porpuntos, el coste computacional sería demasiado grande para calcularse en tiempo real.Sin embargo, densificando el modelo por medio de superficies planares, se ha podidodensificar el modelo con un coste computacional mucho menor. En la Figura 6.4 se puedeobservar la reconstrucción final obtenida.

32

Figura 6.4: Reconstrucción densa basada en planos de la habitación 1. Se observa que las zonasde la pared con color uniforme son representadas en la reconstrucción obtenida a pesar de noexistir puntos característicos.

33

6.2. Reconstrucción de habitación 2

En este experimento se procede a la reconstrucción de otra habitación. En este caso serealiza partiendo de un vídeo de 30 segundos de duración. Las características propias deeste experimento son:

Los planos dominantes ya no son tan claros como en la habitación 1.

La reconstrucción no-densa es de tamaño medio (1700 puntos) y no están repartidosuniformemente (hay una densidad de puntos mayor en el corcho de la pared).

A continuación se muestran algunos de los keyframes del vídeo.

Figura 6.5: Ejemplo de algunos keyframes del vídeo de la habitación 2. En el anexo A.2 seencuentra el set completo.

La principal característica de este experimento es que la reconstrucción no-densaobtenida está formada por una nube de puntos distribuida de forma no uniforme, de talforma que hay una mayor densidad en la zona de la pared de la derecha donde esta elcorcho (ver Figura 6.6).

Figura 6.6: Reconstrucción no-densa de la habitación 2. Esta reconstrucción está compuesta por1771 puntos distribuidos de forma poco uniforme.

34

Para ilustrar la mejora temporal producida por las heurísticas desarrolladas, se hanejecutado cuatro métodos distintos sobre el mismo vídeo. En la Tabla 6.3 se muestran lostiempos de ejecución para cada uno de los cuatro métodos comparados y en la Figura 6.7se muestra una gráfica de los tiempos relativos obtenidos.

Método Tiempo en segundos Tiempo relativo Planos reconocidosBatch CCT 74 2,466 10Batch SCT 47 1,566 31Online 32 1,066 7Live 30 1 9

Tabla 6.3: Comparación del rendimiento para la reconstrucción de habitación 2.

Figura 6.7: Comparación de tiempos relativos para la reconstrucción de habitación 2.

Se observa como el método Batch CCT es un 146% más lento de lo necesario paraejecutarse en tiempo real, mientras que el método Online tan solo un 6%. Del mismomodo, el método Batch SCT es un 56% más lento. El incremento de los tiempos obtenidosen relación con el experimento anterior (habitación 1) se debe a la mayor densidad depuntos en una zona concreta de la escena. Por otro lado, el método Live únicamente seha saltado 3 keyframes que no han sido procesados. A pesar de ello, la calidad de lareconstrucción obtenida es muy similar en los tres casos, siendo la mejora del tiempode ejecución debida principalmente a las diferentes heurísticas desarrolladas durante elproyecto.

El objetivo de este experimento era obtener los tres planos dominantes de la escena. Enla Figura 6.8 se observa el resultado obtenido. A pesar de tratarse de una reconstruccióndensa de escasa calidad, es importante tener en cuenta que se ha obtenido de formaincremental a partir de la información contenida en la reconstrucción no-densa, dondela zona de la cama contiene una densidad de puntos muy pequeña.

35

Figura 6.8: Reconstrucción densa basada en planos de la habitación 2. Se observa que en estecaso no ha sido posible reconstruir la zona de la pared entre las almohadas y la estantería.

36

6.3. Reconstrucción de encimera

En este experimento se procede a la reconstrucción de la encimera de una cocinaa partir de un vídeo de 51 segundos de duración. Las características propias de esteexperimento son:

Existencia de reflejos en la superficie de la encimera.

Reconstrucción no-densa de tamaño medio (1400 puntos) localizados en su mayorparte en las aristas.

A continuación se muestran algunos de los keyframes del vídeo.

Figura 6.9: Ejemplo de algunos keyframes del vídeo de la encimera. En el anexo A.3 se encuentrael set completo.

Para ilustrar la mejora temporal producida por las heurísticas desarrolladas, se hanejecutado cuatro métodos distintos sobre el mismo vídeo. En la Tabla 6.4 se muestran lostiempos de ejecución para cada uno de los cuatro métodos y en la Figura 6.10 se muestrauna gráfica comparativa de los tiempos relativos obtenidos.

Experimento Tiempo en segundos Tiempo relativo Planos reconocidosBatch CCT 69 1,352 6Batch SCT 60 1,176 11Online 55 1,078 7Live 51 1 8

Tabla 6.4: Comparación del rendimiento para la reconstrucción de la encimera.

Se observa como el método Batch CCT es un 35% más lento de lo necesario paraejecutarse en tiempo real, mientras que el método Online tan solo un 7%. Por otro lado,el método Batch SCT se ejecuta tan solo un 17% más lento, mientras que la cantidad deplanos con información replicada no es muy elevada; esto se debe a la gran cantidad dereflejos que existen en la escena, que provocan errores en el cálculo de la consistenciafotométrica. En cuanto al método Live, únicamente se ha saltado 2 keyframes que no hansido procesados, obteniendo una reconstrucción de escasa calidad, al igual que en el casode los otros métodos.

37

Figura 6.10: Comparación de tiempos relativos para la reconstrucción de la encimera.

En la Figura 6.11 se muestra la reconstrucción no-densa obtenida, donde se puedeapreciar que la mayor parte de los puntos se encuentran situados en las aristas de laencimera. Así mismo, se observa que se trata de un modelo que contiene poca informaciónacerca de la escena y que es necesario densificar.

Figura 6.11: Reconstrucción no-densa de la encimera. Esta reconstrucción está compuesta por1460 puntos. Se observa que la mayor parte de los puntos se concentran en las aristas.

En la reconstrucción final obtenida (ver Figura 6.12), se observa una deficiente calidaden las texturas. Esto se debe a que las imágenes utilizadas están tomadas con bastanteinclinación respecto a la normal, es decir, con bastante perspectiva. Como se ha explicadoen la sección 5.5, las texturas son calculadas con el fin de conseguir una pequeña guíavisual para la comprobación de las reconstrucciones obtenidas. Por ese motivo no se haimplementado ningún tipo de estrategia disminuir este efecto.

38

Figura 6.12: Reconstrucción densa basada en planos de la encimera. Se puede apreciar que lacalidad de las texturas no es muy buena debido a la perspectiva de las imágenes.

39

6.4. Reconstrucción de escritorio

En este experimento se intenta reconstruir un escritorio a partir de un vídeo de 25segundos de duración. Las características propias de este experimento son:

Reconstrucción no-densa de una mayor densidad (3800 puntos).

Existencia de un elevado número de puntos estimados erróneamente.

A continuación se muestran algunos de los keyframes del vídeo.

Figura 6.13: Ejemplo de algunos keyframes del vídeo del escritorio. En el anexo A.4 se encuentrael set completo.

Este experimento es especialmente complicado por dos motivos. En primer lugar, elnúmero de puntos visibles en un keyframe es demasiado grande como para ser procesadoen un tiempo razonable. Esto hace que todos los métodos utilizados requieran demasiadotiempo de cómputo. Y en segundo lugar, aparece un número considerable de puntoserróneamente estimados en la reconstrucción no-densa (ver Figura 6.14), lo que dificultael proceso de búsqueda de planos.

Se han ejecutado cuatro métodos distintos sobre el mismo vídeo. En la Tabla 6.5 semuestran los tiempos de cómputo para cada uno de ellos y en la Figura 6.15 se muestrauna gráfica comparativa de los tiempos relativos obtenidos.

Experimento Tiempo en segundos Tiempo relativo Planos reconocidosBatch CCT 496 19,84 13Batch SCT 259 10,36 61Online 142 5,68 15Live 25 1 6

Tabla 6.5: Comparación del rendimiento para la reconstrucción del escritorio.

Debido a la dificultad de esta escena, se observa como ninguno de los resultadosobtenidos se acerca a tener un rendimiento adecuado para el tiempo real. El método BatchCCT es un 1884% más lento de lo necesario, el método Batch SCT un 936% y el métodoOnline un 468%. No obstante, el método Online sigue teniendo un mejor rendimiento quelos otros dos anteriores. Sin embargo, con el método Live únicamente se han procesado 3keyframes de un total de 33. En la Figura 6.16 se muestran los resultados obtenidos.

40

Figura 6.14: Reconstrucción no-densa del escritorio. Esta reconstrucción está compuesta por3753 puntos. Recuadrados en verde se muestran los puntos que están bien estimados. Se observaque existe un gran número de puntos estimados erróneamente.

Figura 6.15: Comparación de tiempos relativos para la reconstrucción del escritorio.

41

(a) Reconstrucción obtenida por el método Live.

(b) Reconstrucción obtenida por el método Online.

Figura 6.16: Reconstrucción densa basada en planos del escritorio. En la Figura 6.16a se observaque la reconstrucción obtenida en tiempo real contiene muy poca información debido a quesolamente se han procesado 3 keyframes. En la Figura 6.16b se observa que la reconstruccióncontiene más información. Sin embargo el efecto negativo causado por los puntos erróneamenteestimados también se acentúa.

42

Capítulo 7

Conclusiones y trabajo futuro

La reconstrucción 3D densa en tiempo real a partir de vídeo es un área específicade la visión por computador para la cual todavía no existen soluciones plenamentesatisfactorias. Su objetivo es la obtención de un modelo 3D que represente la informaciónque el computador ha obtenido a partir de una secuencia de vídeo en tiempo real.

La reconstrucción 3D densa offline a partir de múltiples imágenes es un campo queha sido ampliamente estudiado en los últimos años, llegando a obtener unos muy buenosresultados. Durante la realización de este proyecto se han explorado y evaluado diversastécnicas y su adaptación a un sistema en tiempo real. De esta forma se han propuestodiversas heurísticas que reducen el tiempo de cómputo necesario.

Como resultado del desarrollo del proyecto se ha obtenido una aplicación que haceuna estimación de los planos dominantes del entorno capaz de funcionar en tiempo real.Los experimentos llevados a cabo demuestran que el software desarrollado funciona deforma aceptable en entornos con una pequeña densidad de puntos donde los planos sonmuy evidentes. Sin embargo, el algoritmo no es capaz de obtener una reconstrucción decalidad cuando se usa en entornos más generales y con una densidad de puntos mayor.

Es evidente que la calidad de las reconstrucciones obtenidas no es comparablecon la de las reconstrucciones offline. Hasta la fecha no existe ninguna aplicación dereconstrucción densa en tiempo real basándose únicamente en vídeo que ofrezca unacalidad comparable. Como se ha comprobado, en este proyecto tampoco se ha conseguidouna solución plenamente satisfactoria. Por tanto, el reto de conseguir un sistema con estascaracterísticas sigue abierto para la comunidad científica.

Como trabajo futuro, se propone el reconocimiento de planos que presentan huecos,como por ejemplo el hueco de una puerta en una pared. Y como mejora directa delsistema desarrollado, el establecimiento de un límite superior en el número de puntosque se procesan en cada keyframe, para intentar reducir el impacto temporal producidopor determinados escenarios donde la reconstrucción no-densa esta compuesta pordemasiados puntos.

43

44

Bibliografía

[1] CGAL, Computational Geometry Algorithms Library. http://www.cgal.org. 1

[2] Sameer Agarwal. Building rome in a day. In International Conference on ComputerVision, Kyoto, Japan, 2009. 1.1

[3] F. Devernay and O. D. Faugeras. Straight lines have to be straight. Machine Visionand Applications, 13:14–24, 2001. 2.3

[4] R. I. Hartley and A. Zisserman. Multiple View Geometry in Computer Vision.Cambridge University Press, ISBN: 0521540518, second edition, 2004. 2, 3.2

[5] Georg Klein and David Murray. Parallel tracking and mapping for small ARworkspaces. In Proc. Sixth IEEE and ACM International Symposium on Mixed andAugmented Reality (ISMAR’07), Nara, Japan, November 2007. 1, 1.1, 2

[6] David Lovi. Incremental Free-Space Carving for Real-Time 3D Reconstruction.In Fifth International Symposium on 3D Data Processing Visualization andTransmission(3DPVT), May 2010. 2

[7] Richard A. Newcombe and J. Andrew. Live Dense Reconstruction with a SingleMoving Camera Davison. CVPR, 2010. 2

[8] Henrik Stewénius, Christopher Engels, and David Nistér. Recent developments ondirect relative orientation abstract. 2

[9] R. Toldo and A. Fusiello. Photo-consistent planar patches from unstructured cloud ofpoints. In Proceedings of the European Conference on Computer Vision (ECCV’10),2010. 1, 4, 2

[10] R. Toldo and A. Fusiello. Real-time incremental j-linkage for robust multiplestructures estimation. In Proceedings of the 3D Data Processing Visualization andTransmission conference (3DPVT’10), 2010. 1, 4, 2

45

46

Anexos

47

Apéndice A

Datos de los experimentos

Todos los experimentos se han ejecutado sobre el mismo hardware. Las característicasprincipales del ordenador portátil utilizado son las siguientes:

Memoria: 2GB

Procesador: Intel(R) Pentium(R) Dual CPU T3400 2.16GHz

SO: Ubuntu versión 10.04 (Lucid Lynx)

A.1. Set de keyframes de la habitación 1

Datos del vídeo:

• Duración: 48 segundos

• Número total de frames: 1440

Datos de la ejecución:

• Número de keyframes: 23

• Número de puntos: 1169

Parámetros comunes a todos los métodos:

• Frames de inicialización: 18 - 59

• Threshold de la correlación: 0,8

• Threshold de JLinkage: 0,05

En la Figura A.1 se muestran los keyframes utilizados en este experimento. Y en lasFiguras A.2 y A.3 se muestran diferentes vistas de los resultados de la reconstrucción dela habitación 1 en tiempo real.

49

Figura A.1: Miniaturas de los keyframes utilizados para la reconstrucción de la habitación 1.

50

Figura A.2: Vista de la reconstrucción de la habitación 1, arriba la reconstrucción no-densa, yabajo la reconstrucción basada en planos.

51

Figura A.3: Otra vista de la reconstrucción de la habitación 1, arriba la reconstrucción no-densay abajo la reconstrucción basada en planos.

52

A.2. Set de keyframes de la habitación 2

Datos del vídeo:

• Duración: 30 segundos

• Número total de frames: 900

Datos de la ejecución:

• Número de keyframes: 11

• Número de puntos: 1771

Parámetros comunes a todos los métodos:

• Frames de inicialización: 64 - 134

• Threshold de la correlación: 0,8

• Threshold de JLinkage: 0,05

En la Figura A.4 se muestran los keyframes utilizados en este experimento. Y en lasFiguras A.5 y A.6 se muestran diferentes vistas de los resultados de la reconstrucción dela habitación 2 en tiempo real.

Figura A.4: Miniaturas de los keyframes utilizados para la reconstrucción de la habitación 2.

53

Figura A.5: Vista de la reconstrucción de la habitación 2, arriba la reconstrucción no-densa, yabajo la reconstrucción basada en planos.

54

Figura A.6: Otra vista de la reconstrucción de la habitación 2, arriba la reconstrucción no-densay abajo la reconstrucción basada en planos.

55

A.3. Set de keyframes de la encimera

Datos del vídeo:

• Duración: 51 segundos

• Número total de frames: 1530

Datos de la ejecución:

• Número de keyframes: 16

• Número de puntos: 1461

Parámetros comunes a todos los métodos:

• Frames de inicialización: 15 - 55

• Threshold de la correlación: 0,8

• Threshold de JLinkage: 0,07

En la Figura A.7 se muestran los keyframes utilizados en este experimento. Y enlas Figuras A.8, A.9 y A.10 se muestran diferentes vistas de los resultados de lareconstrucción de la encimera en tiempo real.

56

Figura A.7: Miniaturas de los keyframes utilizados para la reconstrucción de la encimera.

57

Figura A.8: Vista de la reconstrucción de la encimera, arriba la reconstrucción no-densa, y abajola reconstrucción basada en planos.

58

Figura A.9: Otra vista de la reconstrucción de la encimera, arriba la reconstrucción no-densa yabajo la reconstrucción basada en planos.

59

Figura A.10: Otra vista de la reconstrucción de la encimera, arriba la reconstrucción no-densay abajo la reconstrucción basada en planos.

60

A.4. Set de keyframes del escritorio

Datos del vídeo:

• Duración: 25 segundos

• Número total de frames: 750

Datos de la ejecución:

• Número de keyframes: 33

• Número de puntos: 3753

Parámetros comunes a todos los métodos:

• Frames de inicialización: 8 y 55

• Threshold de la correlación: 0,8

• Threshold de JLinkage: 0,1

En la Figuras A.11 y A.12 se muestran los keyframes utilizados en este experimento. Enla Figura A.13 se muestra el modelo reconstruido por el método Online y en la FiguraA.14 el obtenido por el método Live.

Figura A.11: Miniaturas de los keyframes utilizados para la reconstrucción del escritorio.

61

Figura A.12: Miniaturas de los keyframes utilizados para la reconstrucción del escritorio (cont.A.11).

62

Figura A.13: Vistas de la reconstrucción basada en planos del escritorio obtenida por el métodoOnline.

63

Figura A.14: Vistas de la reconstrucción basada en planos del escritorio obtenida por el métodoLive.

64

Apéndice B

Manual de uso e instalación del software

B.1. Requisitos necesarios

Sistemas operativos soportados

El código ha sido desarrollado sobre la plataforma Linux x86/x86-64. Éste es el únicosistema operativo soportado.

Requisitos mínimos del procesador

El software ejecuta tres threads de procesamiento intensivo al mismo tiempo y porlo tanto necesita al menos un procesador dual-core. Los procesadores Intel Core 2 Duo2.4GHz+ están bien. Sin embargo el rendimiento será mejor en el caso de contar con unprocesador con al menos tres núcleos.

Gráficos

El software requiere aceleración gráfica OpenGL.

Entrada de vídeo

El software requiere una entrada de vídeo con las siguientes características:640x480x30Hz.

65

B.1.1. Librerías:

El software tiene tres dependencias principales:

1. TooN - una librería de cabeceras para álgebra lineal.

2. libCVD - una librería para la manipulación de imágenes, captura de vídeo y visiónpor computador.

3. Gvars3 - una librería de configuración/scripting en tiempo real.

Todas las librerías anteriores son de libre distribución y están bajo la licencia LGPL. Paradescargar las librerías se pueden utilizar los siguientes comandos:

export CVS_RSH=sshcvs -z3 -d:pserver:[email protected]:\\

/sources/toon co -D "Mon May 11 16:29:26 BST 2009" TooNcvs -z3 -d:pserver:[email protected]:\\

/sources/libcvd co -D "Mon May 11 16:29:26 BST 2009"libcvd

cvs -z3 -d:pserver:[email protected]:\\/sources/libcvd co -D "Mon May 11 16:29:26 BST 2009"

gvars3

B.2. Instalación

B.2.1. Instalación de las dependencias

Son necesarias las siguientes librerías (y sus respectivos -dev): blas, lapack, ncurses,libreadline, libdc1394, libraw1394, freeglut3, coriander, libtiff, libjpeg y libpng.

Una vez instaladas en el sistema, el orden de la instalación de las cuatro dependenciasprincipales debería ser el siguiente: TooN, libCVD, GVars3.

La compilación e instalación de estas librerías se realiza usando el familiar comando:

./ configure; make; make install

La instalación de TooN es trivial, puesto que únicamente se trata de un conjunto deficheros de cabecera. Para libCVD, se utilizan las siguientes opciones de configuración:

export CXXFLAGS=-D_REENTRANT./ configure --enable -gpl

66

Para GVars3, se utilizan las siguientes opciones de configuración:

./ configure --disable -widgets

B.2.2. Compilando el software

El fichero Makefile puede ser editado para referenciar cualquier include personalizadoo los paths que sean necesarios para el linker (dependiendo de donde estén instaladas lasdependencias).

El software puede ser compilado mediante el comando:

make

Esto construye dos ejecutables: PTAM y CameraCalibrator.

B.3. Ejecución

B.3.1. Calibrando la cámara

El programa CameraCalibrator debería ejecutarse primero para obtener los parámetrosde calibración de la cámara. Esto requiere que el usuario apunte con la cámara al patrón detablero de ajedrez o en su defecto, que el vídeo pasado como entrada lo haga; cualquierpatrón de este tipo y de cualquier tamaño servirá. Se incluye un ejemplo en el ficherocalib_pattern.pdf.

Cuando la cámara esta en una posición en la que se detecta la rejilla, el usuario debepresionar el botón “GrabFrame” para añadir el frame al optimizador. Después de grabarunos cuantos frames desde diferentes posiciones, se ha de presionar el botón “Optimize”para que se calculen los parámetros de la cámara de forma iterativa. Cuando el usuarioeste satisfecho con la convergencia (el error RMS no debería ser mayor de 0,3 píxeles)se ha de presionar “Save” para guardar los parámetros de calibración de la cámara en elfichero camera.cfg.

67

B.3.2. Ejecutando el software

En la Figura B.1 se muestra la forma correcta de inicializar el software. La cámaradebe trasladarse una distancia aproximada de diez centímetros entre el primer y el segundoframe de inicialización. Éste procedimiento definirá la escala utilizada y por lo tanto sedeberán ajustar los parámetros relativos a distancias de forma consecuente.

Figura B.1: Inicialización del software. El procedimiento de inicialización estéreo necesita unainicialización adecuada para funcionar correctamente. Para ello la cámara debe moverse deforma lateral entre los dos frames de inicialización. Un movimiento únicamente de rotación noes suficiente.

La interfaz consta de dos vistas principales (Figura B.2). En la primera, los planosreconocidos se superponen sobre el vídeo de forma que es posible ver los planos al mismotiempo que se reproduce el vídeo. De forma que de una manera muy visual se puede verla evolución de la reconstrucción. Por otro lado, en la segunda vista se muestra un entorno3D navegable con la reconstrucción obtenida.

(a) Planos superpuestos sobre el video. (b) Entorno 3D con la reconstrucción.

Figura B.2: Vistas de la aplicación. En la Figura B.2a se muestran los planos superpuestos sobreel vídeo. En la Figura B.2b se muestra el entorno 3D de visualización.

68

Los botones disponibles desde la interfaz son los siguientes:

GeneraTextura: Activa/Desactiva la generación de texturas.

View Textures: Activa/Desactiva la visualización de texturas en el entorno 3D.

View Planes: Activa/Desactiva la visualización de planos en el entorno 3D.

View map: Activa/Desactiva la visualización del entorno 3D.

JLinkage: Activa/Desactiva el reconocimiento de planos.

A continuación se detallan los parámetros mediante los cuales se configuran las diversasopciones presentadas a lo largo del documento principal de la memoria:

-input: path del fichero de vídeo (si se omite se utilizará la webcam).

-kf1: primer frame que se utilizará para la inicialización del sistema (si se omite seintroducirá de forma manual presionando la barra espaciadora).

-kf2: segundo frame que se utilizará para la inicialización del sistema (si se omitese introducirá de forma manual presionando la barra espaciadora).

-thJL: threshold utilizado por el algoritmo JLinkage (0,5 por defecto).

-thCo: threshold utilizado por la consistencia fotométrica (0,8 por defecto).

-mthJL: método utilizado por JLinkage {online, batch}.

-mthHi: método utilizado para crear nuevas hipótesis de planos {random, exponential,kneighbours}.

-mthCo: método utilizado para la correlación {bw, rgb, rgb_avg}.

-mthHo: método utilizado por la consistencia temporal {alwaysNew, incremental}.

-mthEx: método utilizado para la consistencia fotométrica {all, near, last}.

-step: booleano que indica si el algoritmo se ejecuta parando o en tiempo real.

-v: booleano que indica si se desean comentarios o no.

69

70

Apéndice C

Diagrama de tareas

En este anexo se pretende dar una idea global de lo que ha sido el desarrollo delproyecto. En la Figura C.1 se muestra el diagrama de gantt en el que aparecen las tareasdesarrolladas y los tiempos empleados para cada una de ellas.

Figura C.1: Diagrama de gantt. Se observan las diferentes tareas realizadas durante el proyectoy su duración aproximada.

A continuación se explica con más detalle cada una de las tareas y los problemasencontrados en cada una de ellas:

1. Instalación de las librerías PTAM. En esta fase se tuvo que leer y entender ladocumentación. Después se tuvieron que instalar la librerías. Y como paso final setuvo que modificar la entrada del algoritmo para que aceptara un fichero de vídeo.

2. Integración JLinkage. En esta fase primeramente se tuvo que instalar las libreríasy entenderlas, algo que no fue trivial dado la escasa documentación existente.Después se tuvieron que integrar en el propio software de PTAM.

3. Cálculo de homografías. En una primera aproximación se calculaban lashomografías del bounding box de los puntos del plano. Luego se modificó paraque se realizara con el convex hull. Y más adelante se intentó calcularlas para cadauno de los triángulos definidos por la triangulación de delaunay, pero el resultadoobtenido no fue el deseado.

71

4. Cálculo de texturas en blanco y negro. El cálculo de las texturas fue un temacomplicado debido a que openGL tiene unas restricciones muy específicas encuanto a su uso en threads y esto hizo que se perdiera algo de tiempo en esta fase.

5. Consistencia temporal. En esta fase del proyecto se diseñaron dos tipos deestrategias. En primer lugar se definió un sistema para fusionar los planos despuésde haber sido creados. Después de unas pequeñas pruebas se desechó la idea yfinalmente se implementó la estrategia, descrita en la memoria, en la que los planosson incrementados.

6. Cálculo de texturas en color. En esta fase del proyecto se decidió la implemen-tación de las texturas en color. Esto debería haber sido una tarea fácil si no fueraporque había un problema con el código utilizado para que PTAM aceptase vídeocomo entrada y llevó bastante tiempo depurarlo.

7. Implementación de las heurísticas. En esta fase del proyecto se barajarondiversas heurísticas, algunas de las cuales se descartaron poco después de serimplementadas.

8. Realización de los experimentos. En esta fase del proyecto se grabaron vídeos yse realizaron pruebas para comprobar el rendimiento de los algoritmos propuestos.

72


Recommended