Contributions to 3D data registration and representation

  1. Morell Giménez, Vicente
Dirigida por:
  1. Miguel Cazorla Quevedo Director
  2. José García Rodríguez Codirector

Universidad de defensa: Universitat d'Alacant / Universidad de Alicante

Fecha de defensa: 02 de octubre de 2014

Tribunal:
  1. Antonio Jimeno Morenilla Presidente
  2. José M. Cecilia Secretario/a
  3. Alexandra Psarrou Vocal
Departamento:
  1. CIENCIA DE LA COMPUTACION E INTELIGENCIA ARTIFICIAL

Tipo: Tesis

Teseo: 369854 DIALNET lock_openRUA editor

Resumen

Motivacion: La motivación para esta tesis viene dada por la participación y colaboración en varios proyectos relacionados con la visión por computador y la robótica móvil. La llegada de cámaras RGB-D de bajo coste como la Microsoft Kinect ha llevado a muchas aplicaciones a introducir procesamiento de datos 3D en sus esquemas. Estos dispositivos proporcionan una gran cantidad de información en forma de imágenes de color y de profundidad. Estos dos tipos de imágenes pueden ser fácilmente transformadas en un conjunto de puntos 3D con color que en adelante llamaremos nube de puntos 3D. El uso de estas nubes de puntos implica un gran coste computacional, por ello es necesario un modelo de representación y un rediseño de los algoritmos con el fin de aprovechar las capacidades de computación paralelas de los actuales sistemas. Una de las aplicaciones que hace un uso intensivo de estos datos 3D es el simultáneous Localization And Mapping (SLAM). El SLAM es un problema común en el campo de la robótica móvil y ha sido extensamente estudiados desde que fue originalmente propuesto por [Leonard and Durrant-Whyte, 1991], basado en trabajos anteriores de [Smith et al., 1987]. El problema del SLAM es en realidad dos problemas que tienen que ser resueltos al mismo tiempo debido a sus dependencias mutuas. El robot recibe un conjunto de datos de los sensores de entrada y usando su odometría interna, por ejemplo la posición relativa de los sensores en el sistema de coordenadas virtual del robot, el robot crea un mapa del entorno para ese instante y esa posición. Pero normalmente para mapear todo el entorno o simplemente para completar alguna tarea que implique movimiento del robot, el robot cambia su posición y los nuevos datos de los sensores estarán por tanto en otro sistema de coordenadas. Entonces, para acumular los datos de los sensores y por tanto ir construyendo un mapa del entorno, el robot necesita conocer la transformación o movimiento que el robot ha ejecutado. Esta transformación puede ser estimada usando la odometría interna del robot o usando un sistema de localización externo. Existen diferentes sistemas de localización externos que usan diferentes tecnologías como GPS, blue-tooth ([Anastasi et al., 2003]), radio-frecuencia ([Bahl and Padmanabhan, 2000]) o Redes Inalámbricas locales ([Battiti et al., 2002]). Sin embargo, hay situaciones donde estos sistemas no son plausibles como entornos submarinos, espacio exterior o situaciones catastróficas. Por otro lado, el movimiento estimado del robot puede ser altamente erróneo debido a superficies deslizantes o cambios en el viento en el caso de los robots voladores. El sistema SLAM propone usar la información proveniente de los sensores en diferentes instantes de tiempo y posiciones para estimar el movimiento del robot. Este proceso es llamado Registro. Sin embargo, usando un registro incremental se obtienen errores acumulativos, por tanto el mapa construido incrementalmente no es correcto. Para solucionar este problema, el SLAM propone mover al robot a una zona previamente visitada por el robot. Usando la localización estimada del mapa, los datos de los sensores deberían encajar con el mapa previamente almacenado. Por tanto, usando la posición estimada del robot calculamos el registro entre la parte del mapa donde se supone que está el robot y la información de los sensores. Esta nueva transformación puede ser usada para corregir la posición estimada del robot y al mismo tiempo para corregir las transformaciones que se han calculado previamente, o dicho de otro modo, a corregir el mapa generado. En esta tesis nos centraremos en el problema del registro para los sistemas SLAM y en la eficiente representación y compresión de los mapas generados. Propuesta: Después de describir brevemente el problema de registro se propone llevar a cabo un estudio experimental de los métodos del estado del arte con el fin de elegir el método que mejor encaja con los escenarios hechos por el hombre con los cuales se trabaja. El método de registro incremental elegido tendrá que trabajar con los datos 3D proporcionados por los sensores RGB-D de bajo coste, con su correspondiente ruido. Como estamos usando estas cámaras para obtener los valores de profundidad para registrar grandes escenarios, que proporcionan errores grandes para largas distancias, vamos a estudiar qué métodos son más robustos y obtienen mejores estimaciones de movimiento. Además, con el fin de representar las nubes reconstruidas resultantes o las nubes de puntos 3D de otras fuentes como por ejemplo las que provienen directamente de los sensores RGB-D, proponemos usar mapas auto-organizativos (GSOMs). En concreto proponemos usar la red neuronal Growing Neural Gas para representar el espacio de entrada de las nubes de puntos como un mapa de neuronas y sus interconexiones. Basándonos en los trabajos anteriores con GSOMs [Garcia-Rodriguez, 2009, Angelopoulou et al., 2005], estas redes GNG son capaces de adaptar su topología al espacio de entrada 2D y es capaz de obtener una representación reducida la cual se ve muy poco afectada por los datos ruidosos del espacio de entrada [Stergiopoulou and Papamarkos, 2006, Doucette et al., 2001, Garcia-Rodriguez et al., 2010, Baena et al., 2013]. Además, debido al tamaño de las nubes de puntos 3D, se propone usar un método de compresión que usa información geométrica con el fin de reducir el espacio de entrada. En escenarios hechos por el hombre normalmente hay muchos planos, por ello nuestro método trata de detectar los puntos que pertenecen a planos y luego reduce esos planos a triángulos. Estas triangulaciones permiten al sistema generar una distribución de puntos similar a la de la nube de puntos original. Por tanto, nuestro método de compresión es con perdida. Las aproximaciones a planos permite al método reducir parcialmente el ruido generado por los sensores RGB-D. Objetivos: El objetivo principal de esta investigación es el estudio y validación de la eficiencia de los métodos de procesado 3D los cuales nos ayudarán a solucionar los posteriores problemas de visión por computador y robótica móvil presentados en la sección de motivación. Con respecto a los métodos de registro, buscamos analizar los métodos del estado del arte con el fin de encontrar el método que más se ajusta a nuestra aplicación de reconstrucción de escenas usando datos 3D provenientes de cámaras RGB-D de bajo coste como la Microsoft Kinect. Los métodos seleccionados deben ser capaces de manejar los datos ruidosos y los outliers que estos dispositivos generan. Con el fin de manejar grandes nubes de puntos, se propone usar la red neuronal Growing Neural Gas como base de nuestro método de representación. Esta representación compacta y reducida de las nubes de puntos facilita posteriores aplicaciones como el registro o la reconstrucción de escenas. Su estructura permite acelerar operaciones comunes como búsqueda de vecinos y es capaz de reducir la influencia del ruido y los outliers en posteriores algoritmos. Se desarrollará una implementación acelerada por hardware del método propuesto con el fin de conseguir una aceleración considerable sobre las implementaciones CPU actuales e intentar conseguir procesamiento en tiempo real. Además, un método de compresión geométrico será desarrollado para reducir el tamaño de almacenamiento de las nubes de puntos. El método propuesto está basado en la detección de planos y aparte de los ratios de compresión que consigue, estos planos pueden ser usados para posteriores procesos como la reconstrucción 3D o el registro basado en planos. Como objetivo secundario mostraremos las bondades de las arquitecturas GPU para manejar grandes cantidades de datos 3D. Además de acelerar las aplicaciones, proponemos mostrar los beneficios de estas arquitecturas masivamente paralelas en una aplicación de CAD/CAM en el que se espera conseguir una notable aceleración. Conclusiones: En esta tesis, primeros hemos presentado una descripción de varios métodos de registro orientados a sensores RGB-D, clasificándolos principalmente en métodos de grano grueso o métodos de grano fino. Esta clasificación facilita la descripción de las principales características de los distintos algoritmos. Hemos probado cinco métodos diferentes de registro y medido cuantitativamente el error en la estimación de la transformación usando un dataset de RGB-D usado en el estado del arte para medir la odometría Visual y sistemas de localización y mapeado simultáneo. Usando las medidas de evaluación y herramientas proporcionadas por el propio dataset, hemos analizado los resultados de los métodos probados que son: el KinectFusion, el Dense Visual Odometry (DVO, odometría visual densa), el ICP (Iterative Closest Point), un método basado en características visuales y un método combinado de características visuales e ICP para refinar los resultados. Los resultados muestran que los métodos DVO y KinectFusion obtienen errores bajos de registro. El método DVO es el más robusto en las escenas de las secuencias normales fr1 y fr2 mientras que KinectFusion provee los mejores resultados en la secuencia fr3 de las distintas combinaciones de textura y geometría. Además, hemos propuesto dos aproximaciones para mitigar el problema de la gran cantidad de datos 3D con las que la robótica móvil tiene que trabajar. El primer método propuesto consiste en aplicar un algoritmo de Growing Neural Gas para reducir y representar las nubes de puntos 3D. Los resultados muestran que la GNG obtiene una buena representación del espacio de entrada, obteniendo errores más bajos que otros métodos del estado del arte como el Octree o el Voxel Grid. También hemos propuesto un método de compresión con pérdida basado en detección de planos para reducir nubes de puntos 3D obtenidas de escenarios hechos por el hombre. Los resultados muestran cómo nuestro método propuesto es capaz de comprimir y reconstruir una nube de puntos. El ratio de compresión se puede controlar con un parámetro obteniendo diferentes niveles de compresión. El Capitulo 4 ha demostrado que el paradigma GPGPU, esto es usar las tarjetas gráficas para el computo de propósito general, permite acelerar considerablemente algoritmos que tradicionalmente se habían ejecutado en la CPU y conseguir ejecutar algunos bajo fuertes restricciones temporales. La implementación GPU del algoritmo GNG es una versión más eficiente y adecuada para operaciones con restricciones temporales. Sin embargo, usar estas tecnologías no es un proceso simple, las aplicaciones deben ser rediseñadas para aprovecharse de su arquitectura masivamente paralela. Los resultados experimentales muestran como la implementación GPU reduce notablemente el proceso de aprendizaje comparado con las versiones de tanto un mono-hilo como multi-hilo de la CPU. La implementación GPU muestra un gran rendimiento cuando se trabaja con grandes nubes de puntos 3D y un número elevado de neuronas. Estos resultados son los deseados ya que en la robótica se trabaja con grandes cantidades de puntos 3D. La implementación GPU del algoritmo de Digitalización Virtual también ha demostrado las bondades de estas arquitecturas obteniendo un factor de aceleración cercano al 70x. Estos dispositivos GPUs pueden ser fácilmente integrados en los sistemas y herramientas de CAD/CAM para facilitar así procesos muy comunes como el prototipado rápido o la producción de diseño personalizado. Como trabajos futuros se propone ampliar nuestro método de presentación GNG para proporcionar más información para la navegación robótica. Además planeamos proporcionar a la GNG una forma de invertir la reducción o compresión de las nubes de puntos, almacenando información sobre la vecindad de las neuronas (color, distribución de puntos, etc.). Siguiendo esta misma idea, planeamos probar redes neuronales jerárquicas para obtener diferentes resoluciones de los mapas y así poder trabajar con mapas incluso más grandes. Otra modificación posible es usar la estructura de la GNG para reconstruir una malla de polígonos de los mapas que puede ser útil para posteriores aplicaciones de robótica móvil, principalmente la visualización de las escenas. Debido a que nuestro método de compresión es computacionalmente complejo, la implementación de algunas de sus operaciones usando el paradigma de usar las tarjetas gráficas como procesador general debería incrementar la eficiencia del método propuesto. Particularmente, nos centraremos en la detección simultánea de los distintos planos para posteriormente intentar paralelizar la compresión de cada plano detectado. Como objetivo general, planeamos integrar completamente nuestras propuestas de representación y compresión 3D en un sistema de Mapeado y Localización simultáneo (SLAM). Usando la información obtenida del estudio de los métodos de registro, buscamos diseñar un sistema SLAM que funcione en tiempo real que construya una representación del mapa que va construyendo usando nuestra propuesta de la GNG.