Download - Presentacion reconstrucción 3D
ÍNDICE
• Introducción• Reconstrucción 3D• Descripción del software• Aplicación• Análisis de resultados• Instalación de la aplicación• Conclusiones• Bibliografía• Técnica RANSAC y SURF
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
2
INTRODUCCIÓN
• La reconstrucción 3D es la extracción de objetos geométricos a partir deimágenes tomadas desde una o varias cámaras.
• Utilizamos funciones de la API de OpenCV.
• La cámara tiene una posición en el espacio, y una orientación (Traslación yrotación).
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
3
INTRODUCCIÓN
(APLICACIONES)
• Control de calidad industrial en tareas de producción.
• Tele-monitorización de robots móviles.
• Elaboración de mapas tridimensionales.
• Medicina: Representación volumétrica de huesos y órganos internos.
• Modelado 3D: creación de maquetas o reconstrucción de visitas virtuales,recreación de lugares desaparecidos, museos virtuales.
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
4
ÍNDICE
• Introducción• Reconstrucción 3D• Descripción del software• Aplicación• Análisis de resultados• Instalación de la aplicación• Conclusiones• Bibliografía• Técnica RANSAC y SURF
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
5
• Introducción• Movimiento de la cámara a partir de un par de imágenes• Obtención de las matrices de cámara• Reconstrucción de la escena• Reconstrucción A partir de múltiples vistas• Refinamiento de la reconstrucción• Visualización 3D
INTRODUCCIÓN
(Visión estéreo)
• Está formada por dos o más cámaras alineadas ycalibradas.
• El método de reconstrucción 3D que se utiliza sebasa en la obtención de matrices de disparidadpara hallar la profundidad.
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
6
INTRODUCCIÓN
(Reconstrucción 3D con dispositivos calibrados)
• La diferencia con respecto a la visiónestereoscópica es que las cámaras noestán alineadas pero sí calibradas.
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
7
INTRODUCCIÓN
(Structure from Motion)
• Modelo extraído sin calibración previade la cámara.
• Se realiza con una sola cámara, con lacual se recogen varias tomas del objetoa reconstruir.
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
8
INTRODUCCIÓN
• En este proyecto se ha utilizado la técnica de SfM (Structure from Motion).• Pasos a seguir en este proceso:
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
9
Toma de fotografías
Puntos característicos
y matching
Posiciones de las cámaras
Hallar puntos 3D
(triangulación)
Ajuste de la nube de puntos
Visualización 3D
MOVIMIENTO DE LA CÁMARA A PARTIR DE UN PAR DE IMÁGENES
• Se basa en la extracción de características y descriptores de correspondencia.
• La extracción significa seleccionar los puntos en la imagen que poseen buenascaracterísticas, y calcular un descriptor sobre ellos.
• Un descriptor es un vector de números que describen el entorno circundantealrededor de un punto característico en una imagen.
• El proceso de coincidencia trata de encontrar una función de correspondenciaentre un conjunto de características y otro conjunto, usando los descriptoresencontrados.
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
10
MOVIMIENTO DE LA CÁMARA A PARTIR DE UN PAR DE IMÁGENES
• OpenCV proporciona una gama de detectores de características, extractores dedescriptores y comparadores.
• SurfFeatureDetector.
• SurfDescriptorExtractor .
• Para el proceso de coincidencia o matching se ha utilizado la fuerza bruta.
• Obtención de matriz fundamental y esencial.
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
11
OBTENCIÓN DE LAS MATRICES DE CÁMARA(Geometría Epipolar)
• Se extrae de la visión estereoscópica.• Existen una serie de relaciones geométricas entre los puntos 3D y las
proyecciones 2D de las imágenes.
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
13
• Centros ópticos: en ellos confluyen todos los rayosque van desde el punto 3D y pasa por la proyección.
• Proyecciones: coordenadas 2D de la imagen queproyecta el punto 3D del mundo real.
• Epipolos: todas las líneas epipolares pasan por ellos.
• Línea base: línea que une los dos epipolos
• Línea epipolar: línea que une cada proyección con sucorrespondiente epipolo
MATRICES
• La matriz de parámetros intrínsecos podemos describirla como la matriz quedefine la geometría interna y la óptica de la cámara:
𝐾 =𝑓𝑥 0 𝑐𝑥0 𝑓𝑦 𝑐𝑦0 0 1
Siendo 𝑓𝑥 , 𝑓𝑦 la distancia focal
Y 𝑐𝑥 , 𝑐𝑦 el centro de la imagen
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
14
MATRICES
• La matriz fundamental podemos describirla como la matriz que impone lasrestricciones y limitaciones epipolares. La principal característica es que dadosdos puntos 𝑚1 (proyección en imagen 1) y 𝑚2 (proyección en imagen 2),podemos ver si se corresponden de la siguiente manera:
𝑚2𝑇 ∗ 𝐹 ∗ 𝑚1 = 0
• La matriz esencial es una matriz que se deriva de la matriz fundamental. Adiferencia de ésta, no posee ningún parámetro intrínseco, y permite a partirde ella obtener matrices de rotación y traslación. De hecho podemos obteneresta matriz de la siguiente manera:
𝐸 = 𝐾′𝑇𝐹𝐾
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
15
OBTENCIÓN DE LAS MATRICES DE CÁMARA
• Obtenida la matriz esencial E podemos obtener la matriz de cámara P,mediante descomposición de valores singulares (SVD):
𝑃 = 𝑅 𝑡 =
𝑟1 𝑟2 𝑟3 𝑡1𝑟4 𝑟5 𝑟6 𝑡2𝑟7 𝑟8 𝑟9 𝑡3
• Hay dos cámaras, ¿Dónde está la otra matriz de cámara?:
𝑃0 =1 0 0 00 1 0 00 0 1 0
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
16
RECONSTRUCCIÓN DE LA ESCENA
• Siguiendo los pasos de Hartley y Sturm.
• Ecuaciones derivadas de tener los puntos 2D y 3D.
𝑥 = 𝑃𝑋 𝑥′ = 𝑃′𝑋
Donde 𝑥 y 𝑥′ son las correspondencias entre puntos 2D y 𝑋 es el punto 3D.
• A partir de las ecuaciones anteriores llegamos a un sistema de ecuacioneslineales no homogéneas de tipo AX = B, el cual se puede resolver por los valoresde X.
• Este proceso es conocido como triangulación lineal.
• Aplicar reproyección para comprobar si los puntos 3D obtenidos son correctos.
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
17
RECONSTRUCCIÓN DE LA ESCENA
• Reconstrucción 3D a partir de dos vistas:
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
18
RECONSTRUCCIÓN A PARTIR DE MÚLTIPLES VISTAS
• Métodos:
• Perspectiva N-Point (PNP) este método intenta obtener la posición de una nuevacámara con los puntos de la escena que se ha encontrado hasta el momento.
• Iterative Closest Point (ICP) este método se basa en triangular más puntos y vercómo encajan en la geometría de la escena actual, lo que nos indicará la posiciónde la nueva cámara.
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
19
RECONSTRUCCIÓN A PARTIR DE MÚLTIPLES VISTASIterative Closest Point (ICP)
• Es un algoritmo empleado para reducir al mínimo la diferencia entre dos nubesde puntos. ICP se utiliza a menudo para reconstruir superficies 2D o 3D.
• Puede utilizarse en tiempo real.
• Pasos:
• Calcular las correspondencias de puntos usando el criterio del punto más cercano.
• Estimar los parámetros de transformación que minimizan la función de costos de lamedia cuadrática para cada correspondencia.
• Transformar los puntos utilizando los parámetros estimados.
• Iterar (volver a asociar los puntos y así sucesivamente).
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
20
RECONSTRUCCIÓN A PARTIR DE MÚLTIPLES VISTAS
Perspectiva N-Point (PNP)
• Establecemos un punto de partida buscando las matrices de la cámara con lafunción FindCameraMatrices.
• Posteriormente realizamos la triangulación de la geometría con la funciónTriangulatePoint.
• Necesitamos dos vectores alineados que defina cada punto 2D y 3D.
• Guardamos información de los puntos 3D (puntos 2D de los cuales ha sidogenerado).
• Finalmente se usa la función solvePnPRansac por su robustez y mediante lafunción TriangulatePoint añadimos más puntos a la nube de puntos.
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
21
RECONSTRUCCIÓN A PARTIR DE MÚLTIPLES VISTAS
Perspectiva N-Point (PNP)
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
22
REFINAMIENTO DE LA RECONSTRUCCIÓN
• Para este proceso se ha usado la técnica SSBA, la cual requiere los parámetrosde la cámara, la nube de puntos 3D y los puntos 2D que corresponden con cadauno de los puntos 3D.
• El término BA (Bundle Adjustment), propuesto por Brown, consiste en afinar laestructura de la escena y los parámetros de la cámara simultáneamentemediante la minimización de la distancia entre la reproyección de los puntos 3Dreconstruidos y las proyecciones observadas.
• Con el término Bundle se hace referencia a los rayos de luz que penetran en lacámara y los puntos de la escena, los cuales son ajustados intentando minimizarla función de coste.
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
23
REFINAMIENTO DE LA RECONSTRUCCIÓN
(SSBA, Simple Sparse Bundle Adjustment)
• El algoritmo de Bundle Adjustment se trata por tanto de un algoritmo basadoen características.
• Utiliza un mecanismo de minimización basado en mínimos cuadrados medianteel empleo del algoritmo Levenberg-Marguardt.
• Permite detectar las geometrías epipolares incorrectas que dan lugar a unacorrespondencia entre puntos que únicamente introducen ruido en lareconstrucción.
• Este proceso es una de las fases más costosas en la reconstrucción.
• Mejora mediante ejecución en hilos o GPU.
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
24
VISUALIZACIÓN 3D
• Se usa librería PCL (Point Cloud Library)
• Estructura de nube de puntos con PCL:
pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud.
• Se aplica un filtro a la nube de puntos para eliminar
los puntos anómalos, utilizando la eliminación
estadística de valores atípicos SOR
(statistical outlier removal).
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
26
ÍNDICE
• Introducción• Reconstrucción 3D• Descripción del software• Aplicación• Análisis de resultados• Instalación de la aplicación• Conclusiones• Bibliografía• Técnica RANSAC y SURF
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
27
DESCRIPCIÓN DEL SOFTWARE
• Desarrollado en lenguaje C++ con el IDE Qt Creator.
• Desarrollado sobre entorno Linux, más concretamente Ubuntu/Kubuntu 12.10.
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
28
ÍNDICE
• Introducción• Reconstrucción 3D• Descripción del software• Aplicación• Análisis de resultados• Instalación de la aplicación• Conclusiones• Bibliografía• Técnica RANSAC y SURF
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
32
ÍNDICE
• Introducción• Reconstrucción 3D• Descripción del software• Aplicación• Análisis de resultados• Instalación de la aplicación• Conclusiones• Bibliografía• Técnica RANSAC y SURF
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
34
ÍNDICE
• Introducción• Reconstrucción 3D• Descripción del software• Aplicación• Análisis de resultados• Instalación de la aplicación• Conclusiones• Bibliografía• Técnica RANSAC y SURF
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
38
INSTALACIÓN DE LA APLICACIÓN(Librerías requeridas)
• PCL 1.6
• Boost
• Eigen 3.1.3
• VTK 5.8
• SSBA 3.0
• OpenCV 2.4.2
• OpenMP
• Qt Creator
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
39
ÍNDICE
• Introducción• Reconstrucción 3D• Descripción del software• Aplicación• Análisis de resultados• Instalación de la aplicación• Conclusiones• Bibliografía• Técnica RANSAC y SURF
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
40
CONCLUSIONES
• Trabajo bastante amplio y multidisciplinar.
• Únicamente hemos podido llevar a cabo la reconstrucción sobre conjuntos deprueba encontrados en diferentes sitios web.
• Problemática con el tipo de cámara utilizada e iluminación
• Problema importante de coste computacional (Paralelización).
• Problemas con superficies planas o demasiado homogéneas.
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
41
ÍNDICE
• Introducción• Reconstrucción 3D• Descripción del software• Aplicación• Análisis de resultados• Instalación de la aplicación• Conclusiones• Bibliografía• Técnica RANSAC y SURF
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
42
BIBLIOGRAFÍA
• Mastering OpenCV with Practical Computer Vision Projects Autores: Daniel Lélis, ShervinEmami, David Millán, Khvedchenia levgen, Naureen Mahmood, Jason Saragith, Roy ShilkrotEditorial: Packt Publishing
• Aplicación de reconstrucción 3D basada en la sintesis de varios proyectos sobre la misma materia. Página web: http://homes.cs.washington.edu/~ccwu/vsfm/
• Obtención de parámetros extrínsecos de la cámara. Página web: http://joelgranados.wordpress.com/2010/07/30/opencv-camera-extrinsics/
• Conjuntos de dataset de imágenes Página web: http://www.robots.ox.ac.uk/~vgg/data/data-mview.html
• Blog de Martin Peris http://blog.martinperis.com/2012/01/3d-reconstruction-with-opencv-and-point.html
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
43
ÍNDICE
• Introducción• Reconstrucción 3D• Descripción del software• Aplicación• Análisis de resultados• Instalación de la aplicación• Conclusiones• Bibliografía• Técnica RANSAC y SURF
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
44
TÉCNICA RANSAC• Datos un conjunto de datos enorme, esta técnica nos permite definir un
modelo dejando fuera la información contaminada (ruido).
• Se seleccionan de forma aleatoria dos de los puntos. Estos dos puntos definen una recta.
• El soporte para esta recta se mide por el número de puntos cuya distancia normal a la recta cae dentro de un umbral previamente fijado.
• Esta selección aleatoria se repite un número de veces y la recta con mayor soporte se considera la recta robusta.
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
45
TÉCNICA SURF• Se basa en un concepto de multi-resolución. (Generar imágenes con un
tamaño que sea la mitad que el anterior)
• Se pueden obtener réplicas de la imagen original al reducir el ancho de banda de la misma.
• Se selecciona los puntos característicos asignándole un descriptor que los hace únicos.
• Para realizar el descriptor se tienen en cuenta dos aspectos principalmente, la orientación y la descripción de la vecindad.
RECONSTRUCCIÓN 3DUNIVERSIDAD DE JAÉN
46