lunes, 2 de diciembre de 2013

Herramientas de la Libreria PCL

 pointcloudlibrary_logo.png



La herramienta conocida como PCL (Point Cloud Library), la cual consiste en una librería desarrollada para el tratamiento completo de nubes de puntos 3D,  liberada bajo licencia BSD, que cuenta con varios métodos de alta eficiencia computacional.

PCL surgió ante la necesidad de que los robots tengan la capacidad de percibir el mundo tal cual y como lo hacemos los seres humanos, es decir, que puedan determinar las diferentes características y detalles que el ojo humano puede observar. Esta librería se ha potencializado debido al gran al gran avance y al biblioteca bajo costo de los sensores de adquisición de imágenes 3D, en el que cabe destacar en sensor Kinect® de la compañía Microsoft el cual se basa en la tecnológica PrimeSense.

Herramientas de PCL

PCL se encuentra dividido en módulos para facilitar su compilación, las cuales son:

Filtros (libpclfilters)

Debido a los errores generados en la medida, es necesario utilizar herramientas que permitan eliminar datos atípicos  con el fin de obtener mayor fiabilidad en los procesos a desarrollar con la información obtenida. Para esta labor se utilizan los filtros digitales. PCL posee métodos de filtrado  digital como por ejemplo eliminadores de datos atípicos, filtro tipo voxel, eliminador con condición, suavizado, índices de extracción y proyecciones.Debido al volumen de datos que genera una nube de puntos también existe la posibilidad de utilizar filtros que además de eliminar valores atípicos, hacen una gran reducción de datos y permitiendo así una mayor rapidez en la computación. También existe la posibilidad de aplicar filtros de paso, donde tomando como criterio una distancia se eliminan los valores que no cumplan la restricción indicada.

KdTree (libpclKdtree)

Esta biblioteca consiste en una estructura tipo árbol que almacena un conjunto de puntos k-dimensional con el fin de realizar búsquedas eficientes del vecino más cercano. Esta  herramienta se puede utilizar para encontrar las correspondencias entre grupos de puntos para los métodos de características geométricas, o en descriptores para definir la zona  local alrededor de un punto o puntos.

Octree (libpcloctree)

La biblioteca octree proporciona métodos eficaces para la creación de una estructura de datos tipo árbol jerárquico, y subdividir nubes de puntos en conjuntos para realizar el procesamiento de forma eficiente. La aplicación ofrece rutinas
eficientes de búsqueda de vecinos, tales como "Búsqueda de vecinos Voxel", "El vecino más cercano a buscar determinado por un radio K", entre otros. Estos algoritmos tienen la gran ventaja de que se ajustan automáticamente a la dimensión del conjunto de puntos.


Características (libpclfeatures)

PCL permite estimar parámetros de funciones que determinan si un conjunto de datos representa una función geométrica en el espacio. Esta biblioteca contiene funciones de las estructuras de datos y métodos para la estimación de la función en tres dimensiones a partir de los datos de una nube de puntos. La biblioteca también posibilita la extracción de características tridimensionales (como las tradicionales en las superficies y curvaturas), estimación de bordes, descripciones PFH (Point Feature Histograms) y FPFH (Fast Point Feature Histograms), rotación de imágenes, entre otras.

Puntos de Interés (libpclkeypoints)

Esta biblioteca permite determinar los puntos clave en una escena tridimensional creada con una nube de puntos. Normalmente el número de puntos de interés en una nube es menor al total de datos, permitiendo optimizar el procesamiento de los datos.

Registro (libpclregistration)

La librería de registro permite la construcción de un modelo tridimensional por medio de las correspondencias en n vistas del objeto evaluado. La combinación de n-conjuntos de datos (nubes de puntos) en un modelo global consistente, generalmente se realiza mediante una técnica llamada registro, la cual consiste en hallar la correspondencia entre cada nube puntos y realizar una transformación para minimizar el error de alineación (tal como se puede observar en la Figura), y así visualizar todas las nubes de puntos como un conjunto global que posee el modelo con toda sus vistas.


Segmentación (libpclsegmentation)

Esta biblioteca contiene algoritmos especialmente desarrollados para la segmentación de nubes de puntos. Estos algoritmos son los más adecuados para el procesamiento de datos, los cuales se componen de un número de regiones espacialmente aisladas. En tales casos, el agrupamiento se utiliza a menudo para romper la nube en sus partes constituyentes y luego procesar cada grupo de forma independiente. Estos algoritmos se realizan a través de métodos de consenso y son útiles para una variedad de modelos paramétricos (planos, cilíndricos, esferas, líneas, etc.).

Sample_consensus (libpclsample_consensus)

La biblioteca sample_consensus contiene herramientas para estimación de modelos específicos en una nube de puntos, tales como líneas, planos, cilindros y esferas. Esta librería utiliza métodos de ajuste y estimación, como por ejemplo RANSAC, y modelos como planos, cilindros, etc.

Reconstrucción de Superficies (libpclsurface)

Esta biblioteca se utiliza para mejorar la visualización de un modelo tridimensional procesando los puntos de una nube para obtener una representación en malla o una superficie alisada como se puede observar en la Figura 4. La complejidad de la estimación de la superficie se puede ajustar, y normales se puede estimar en la misma etapa si es necesario.

Imágenes de Rango (libpcl_rangeimage)

Esta biblioteca permite transformar una nube de puntos en una imagen de rango, la cual consiste en una representación en 3D común. Este tipo de imágenes se generan con frecuencia en sistemas estéreo o dispositivos de tiempo de vuelo. Con el conocimiento de los parámetros intrínsecos de la cámara por medio de su calibración, una imagen de rango se puede transformar en una nube de puntos para su posterior procesamiento en PCL.

IO (libpclio)

Consiste en una biblioteca que permite operaciones de lectura y escritura de archivos PCD (Point Cloud Data). También cuenta con una interfaz denominada OpenNI Grabber Framewor, la cual permite acceder y controlar tanto el Kinect (Microsoft) como el Xtion-PRo (ASUS).

Visualización (libpclvisualization)

Esta librería permite la rápida visualización de algoritmos que operan sobre nubes de puntos 3D. Cuenta con métodos de procesamiento configuración de propiedades visuales como colores, tamaños de punto y opacidad. También cuenta con algoritmos para dibujar formas básicas en la pantalla y provee un módulo de visualización de histogramas.


citar: Calvo Salcedo, Andrés Felipe, Bejarano Martínez, Arley, Quintero Salazar, Edwin Andrés. Procesamiento de nubes de puntos por medio de la librería PCLScientia Et Technica [en linea] 2012, XVII (Diciembre-Sin mes) : [Fecha de consulta: 12 de diciembre de 2013] Disponible en:<http://www.redalyc.org/articulo.oa?id=84925149019> ISSN 0122-1701

No hay comentarios:

Publicar un comentario