Plataforma web para la visualización de archivos de nubes de puntos Lidar

Web Platform
for the Visualization of Lidar Point Clouds Files

Hugo René Valadez Oliva*

* Centro de Innovación Aplicada en Tecnologías Competitivas (CIATEC), AC, hvaladez@ciatec.mx

PDF                                                                                                  PDF EPUB

RDE27_06_img00

 

El proyecto es un desarrollo tecnológico elaborado para el Instituto Nacional de Estadística y Geografía (INEGI) que facilitará la búsqueda, selección, visualización y descarga de nubes de puntos generadas con la tecnología Light Detection and Ranging (Lidar). Esta información, por lo general, suele tener un grado de dificultad elevado para su manejo por el tamaño de los archivos, por lo que el objetivo fue elaborar una plataforma web con la cual el usuario visualizara de forma ágil, sencilla y amigable las nubes de puntos Lidar, previo a su descarga para realizar un análisis especializado. Lo novedoso del proyecto es su estructura, ya que se compone de la sinergia de varias tecnologías montadas en una plataforma web codificada. Utiliza los lenguajes de programación HTML5, JavaScript, JQuery, CSS3 y un gestor de base de datos PostgreSQL/PostGIS que integra componentes tecnológicos que optimizan la visualización, tales como las librerías Three.js, WebGL, y la plataforma Potree, así como las estructuras octree y Eye Dome Lighting.

Palabras clave: Lidar; modelo 3D; plataforma web; renderizado.

 

This project is a technological development designed for INEGI (National Institute of Statistics and Geography) that will facilitate the search, selection, visualization, and point clouds download generated with LiDAR (Light Detection and Ranging) technology. This information usually has a high degree of difficulty for its management due to the files size, so the goal was to develop a web platform with which the user will view in a fast, simple and friendly manner the LiDAR point clouds before downloading them to perform a specialized analysis. The novelty of the project is its structure, since it consists on the synergy of several technologies mounted on a codified web platform. It uses the programming languages HTML5, JavaScript, JQuery, CSS3 and a PostgreSQL/PostGIS database manager that integrates technological components, such as the three.js libraries, WebGL, the Potree platform, as well as the octree structures, and Eye Dome Lighting (EDL).

 Key words: Lidar; 3D model; web platform; rendering.

Recibido: 2 de marzo de 2018
Aceptado: 12 de diciembre de 2018

Introducción

Los archivos de nubes de puntos Lidar son modelos tridimensionales (XYZ) que surgen como resultado de la integración de un sistema de tres componentes: 1) Global Position System (GPS), 2) unidad de medición inercial y 3) sensor láser que se utiliza para la colecta de datos de distancias (INEGI, 2017a).

El sistema óptico trabaja bajo el principio de medición del tiempo que tardan en regresar los pulsos emitidos por el sensor láser que, al chocar con el objeto de estudio, emite una respuesta capturada con el receptor, determinando así la distancia y, por lo tanto, su ubicación. El resultado de este proceso es almacenado en archivos con extensión LAS o XYZ, entre otros. Cada punto contiene distintos campos de información con la ubicación espacial (coordenadas X, Y, Z), valores de intensidad (reflectividad del objeto), el número de retornos (ecos de los pulsos láser emitidos) o sus colores (valores RGB), por mencionar los más comunes.

La tecnología Lidar tiene la posibilidad de penetración en cada pulso emitido a través de hojas o cubiertas delgadas, permitiendo la captura de hasta cuatro retornos (ecos) por pulso, lo que facilita medir la altura de terreno en zonas cubiertas con vegetación (Fernández-Rivas, 2010).

En función de la densidad de puntos (número de ellos por metro cuadrado) y de las variables que incluyan en cada campo los archivos Lidar, éstos pueden contener millones de datos que elevan el tamaño de los archivos, desde cientos de megabytes o gigabytes hasta terabytes. El aumento de detalle suele demandar mayores capacidades de cómputo para su uso y despliegue en algunas aplicaciones informáticas (Schuetz, Markus, 2016a).

Las imágenes tridimensionales (compuestas por millones de puntos que representan objetos) pueden utilizarse para obtener cartas geográficas representativas del relieve del territorio que permitan a estudiantes, docentes e investigadores realizar estudios y análisis detallados. Entre las múltiples aplicaciones de los datos Lidar se encuentran los atlas de riesgos de ciudades o regiones, en los que se plasman los peligros potenciales de inundaciones por caudales, distribuciones de las vías terrestres, hidrología, erosión y algunas otras variables que pueden ser analizadas en conjunto con modelos hidrológicos e hidráulicos. De forma adicional, es posible emplearlos para estudios de zonas costeras y su erosión, gestión de recursos forestales, el cálculo de biomasa vegetal, así como para la planificación del desarrollo urbano, de infraestructuras y telecomunicaciones.

Como resultado de las actividades geodésicas para la generación de datos Lidar (INEGI, 2017a), el INEGI cuenta con archivos tridimensionales de nubes de puntos captados con la técnica Lidar de cartas geográficas del territorio nacional mexicano dentro de sus repositorios de datos. Su uso para realizar estudios específicos de una región en particular requiere, por lo general, de aplicaciones informáticas especializadas, así como de la búsqueda, selección y descarga del archivo que contiene el modelo tridimensional.

Cada archivo es identificado por el nombre de la carta y su metadato, el cual contiene una densidad de puntos específica y diversas variables adicionales. El proceso normal para obtenerlos es que el usuario busca la información en los repositorios del INEGI a través de la página web institucional, selecciona el archivo y procede a descargarlo. Debido a su gran tamaño, la descarga puede, en función del ancho de banda, tardar varias horas. Una vez hecha esta acción, el usuario lo importa en alguna aplicación informática con capacidad de análisis y, hasta ese momento, el investigador puede corroborar si la imagen tridimensional es la adecuada para los fines que busca existiendo, por lo tanto, la posibilidad de que no sea así y que tenga que repetir el proceso; aun cuando la descarga se trate del archivo deseado, por lo general se requiere de un conjunto de cartas de relieve para el análisis, por lo cual repetirá el proceso de nuevo o usará otros medios para conseguir el conjunto de datos completo. La visualización masiva del conjunto de datos es complicada debido a su tamaño, que normalmente es mayor que la memoria del sistema que lo gestionará (Martinez Rubi et al., 2015).

Este proceso suele llevar un tiempo considerable, sobre todo por las limitaciones que provoca el trabajar y descargar archivos de gran tamaño vía internet debido a la velocidad que se tenga. Por lo antes mencionado, es importante contar con un proceso ágil y sencillo a través de una página web que permita al usuario visualizar la imagen tridimensional con el fin de decidir si el archivo contiene el conjunto de datos que requiere para su análisis.

Antecedentes sobre visualización digital

La visualización y manipulación de gráficos en una aplicación informática es un tema de discusión utilizado de forma amplia en el ámbito de los videojuegos, donde la complejidad de las imágenes y la ágil manipulación de los objetos es crítica para su funcionamiento. Fue en este ámbito donde, en 1992, surgió la librería OpenGL, que mejora la velocidad en el desarrollo de aplicaciones graficas de escritorio 2D y 3D, incorporando funciones de visualización, renderizado, mapeo de texturas y efectos especiales (OpenGL, 2017). Sin embargo, la librería trabaja principalmente integrando componentes sobre plataformas informáticas de escritorio, lo que dio pie al desarrollo de la librería WebGL, la cual es parte fundamental de la plataforma de visualización de datos Lidar y permite el despliegue de contenido web para utilizar una API basada en OpenGL ES 2.0 para llevar a cabo el renderizado 3D en un elemento canvas HTML en los navegadores que lo soporten sin la necesidad del uso de plug-ins. Consiste en un código de control escrito en JavaScript y otro de efectos especiales (shader) que se ejecuta en la unidad de procesamiento gráfico de una computadora (GPU) (MDN webdocs, 2017).

Por su parte, la librería 3D javascript Three.js, con licencia de software libre MIT, es muy utilizada como complemento para minimizar la complejidad del uso de las herramientas contenidas en la librería WebGL; permite un acceso sencillo sobre todo al renderizado de los objetos 3D y su interacción. Como parte de las herramientas para mejorar la experiencia de visualización de datos del usuario, se utiliza la Eye Dome Lighting (EDL) para el manejo de las sombras en los modelos 3D, que es una técnica abierta a toda clase de geometrías que genera una sombra no fotorrealista para mejorar la percepción en las imágenes (Boucheny, Christian, 2011).

Tanto las librerías WebGL y three.js como el algoritmo EDL se enfocan sobre todo en el despliegue y manipulación de los modelos tridimensionales; sin embargo, como se mencionó con anterioridad, una de las problemáticas principales es la cantidad de datos a desplegar en una plataforma web que requiere de una optimización de los puntos en tiempo real. Para el manejo de los grandes archivos de datos, existe un algoritmo basado en Potree’s octree structure, que es una variación de la estructura Modificable Nested Octree (MNO) con un método diferente de clasificación y partición de la jerarquía en trozos más pequeños y transmisibles de forma rápida (Schuetz, Markus, 2016a). El uso de esta estructura de datos es la clave para poder visualizar estos grandes archivos en internet a través del algoritmo octree de Potree, que permite el renderizado de grandes nubes de puntos y la visualización en tiempo real sobre navegadores estándar de conjuntos de datos con billones de puntos tomados de fuentes como Lidar o de fotogrametría (ibid.). Esta plataforma, llamada Potree, fue desarrollada en el Institute of Computer Graphics and Algorithms, TU Wien.

Las nubes de puntos se encuentran tradicionalmente en una estructura de datos en formato LAS, el cual puede comprimirse para formar otra en uno de tipo LAZ, creado por Martin Isenburg y que utiliza la aplicación informática open source LASzip (LASzip, 2017). Para el uso de la estructura octree, se requiere convertir estos archivos de nube de puntos Lidar (LAS/LAZ) a un conjunto de archivos con una estructura de datos en formato .BIN.

El formato octree se basa en una estructura multirresolución que consiste en tomar un archivo Lidar y dividirlo en una estructura de datos basada en octantes (o nodos), cada uno de los cuales se encuentra en función del nivel de detalle de cada rama; cada archivo (que se encuentra dividido en subpartes) contiene información a diferente nivel de detalle. En el momento de la visualización se cargan solo aquellos nodos que son visibles desde la perspectiva del usuario. Cada uno almacena un subconjunto de la nube de puntos; de él se seleccionan ciertos puntos que serán desplegados (Schuetz, Markus, 2016b).

De esta forma, una visualización desde cierta perspectiva del modelo despliega diferentes nodos o archivos con distinto nivel de detalle, tal como se puede apreciar en la figura 1. Conforme el usuario modifica la posición del modelo tridimensional, la plataforma va llamando y desplegando nuevos nodos, lo que permite un acceso ágil. Para la conversión de archivos, se utilizó el proyecto open source PotreeConverter.

RDE27_06_fig01

Aporte del proyecto

El trabajo desarrollado contempló el uso de algoritmos, métodos y plataformas open source para la conversión y despliegue de modelos tridimensionales representativos de cartas geográficas del territorio nacional mexicano en navegadores web convencionales, incorporando una búsqueda basada en conjuntos de datos clasificados, la selección individual o agrupada de las cartas geográficas y la visualización del renderizado o despliegue del relieve en nubes de puntos de archivos captados con la técnica Lidar y depositados en las bases de datos del INEGI, lo que lo hace un desarrollo único en su tipo. La visualización de archivos de nubes de millones de puntos se realiza en tiempo real y de forma ágil.

Con el uso de esta plataforma, el usuario podrá visualizar el relieve de un área geográfica y decidir si desea descargar el archivo para un análisis completo acorde con sus fines de investigación o, en su caso, buscar y seleccionar una o varias diferentes. También, existe la posibilidad de que el renderizado del modelo tridimensional ofrezca los datos necesarios al usuario y, por lo tanto, no requiera descargar el archivo, además de contar con herramientas para el análisis de mediciones preliminares del relieve. Independientemente de las dos opciones, la plataforma permite una considerable reducción en el tiempo de análisis de las cartas.

Plataforma web

Como se mencionó, el uso del portal se enfoca en la búsqueda, selección y previsualización de los archivos Lidar que se encuentran recopilados en las bases de datos del INEGI. Para un análisis especializado de ellos, el INEGI proporciona la opción de descargar los archivos de nubes de puntos para que sean analizados de forma libre por el usuario sobre potentes plataformas de escritorio.

El desarrollo se llevó a cabo bajo diversas plataformas, lenguajes y algoritmos. Se codificó sobre todo con HTML5, JavaScript, JQuery y CSS3, con el gestor de base de datos PostgreSQL/PostGIS.

El renderizado de los archivos de nubes de puntos se realizó con base en la tecnología WebGL a través de la librería 3D javascript Three.js, mientras que el sombreado de las imágenes se hizo por medio de la técnica EDL. Por su parte, el algoritmo octree structure fue clave para agilizar la visualización de multirresolución de los modelos tridimensionales, el cual está contenido en el software open source de Potree.

Acorde con el diseño y los requerimientos trabajados con el INEGI, la plataforma web consiste en una integración de tres secciones: primero la de introducción, después la de búsqueda y selección de área geográfica y por último la de visualización.

Descripción de las secciones de la plataforma

Introducción

En la primera parte se encuentra una pestaña titulada Lidar, la cual contiene una breve descripción de lo que es la tecnología. El objetivo principal es dar una breve introducción al usuario, crear curiosidad sobre la información y ser la puerta de entrada hacia las secciones subsecuentes.

En la figura 2 se puede ver la sección de entrada a la plataforma, la cual se caracteriza por mantener la imagen institucional del INEGI, una representación animada tridimensional (como ejemplificación de las imágenes que el usuario puede encontrar en este sitio) y ofrecer tres ligas de acceso a la selección de archivos. Además, contiene una función que detecta si el navegador se encuentra en la lista de los que son compatibles, con el objetivo de evitar algún tipo de error posterior por este motivo.

RDE27_06_fig02

Búsqueda y selección del área geográfica

En esta segunda sección está contenido un mapa digital con varias herramientas para la selección de capas y, posteriormente, áreas geográficas (ver figura 3). Cuenta con la opción para descargar los archivos en formato LAS sin necesidad de ser visualizados o, en su caso, seleccionar una o varias áreas geográficas para visualizarlas como nubes de puntos en tres dimensiones antes de ser descargadas.

Como mapa digital se utilizó una adaptación del Continuo de Elevaciones Mexicano (CEM) versión 3.1 del INEGI, el cual es un producto en formato ráster (Durón Díaz, 2007). Éste se despliega por omisión en formato hipsográfico; sin embargo, también existe la opción de mostrarlo en ortofotos (ver figura 3).

RDE27_06_fig03

La herramienta para la selección y búsqueda de los archivos se utiliza a través de capas que pueden ser editadas por el dueño del mapa de acuerdo con cierta clasificación o áreas geográficas. Cuenta con la opción para descargar los archivos en formato LAS sin necesidad de ser visualizados o, en su caso, con la de seleccionar una o varias áreas geográficas para, posteriormente, ser visualizadas en la tercera sección como nubes de puntos en tres dimensiones antes de ser descargadas.

El método de búsqueda de la información se realiza de forma gráfica por medio de las capas desplegadas en el sitio, las cuales son configurables por el administrador y pueden modificarse de acuerdo con las clasificaciones que defina.

La primera capa representa las divisiones geográficas por entidad federativa, y las subsecuentes pueden estar divididas por coberturas Lidar históricas, por densidad de puntos, por proveedor de captura, por tipo de nube (RGB, LAS, BIN, LAZ) y sus parámetros, así como por cualquier otro conjunto de clasificación de archivos que se considere apropiado (ver figura 4). De esta forma, un mismo lugar geográfico puede contener más de una nube de puntos a la vez, pero con diferentes propiedades sobre una capa diferente.

RDE27_06_fig04

Una vez que el usuario encuentra la capa con la cobertura geográfica deseada, entra a la función de seleccionar el área o el conjunto de ellas que requiere; se pueden seleccionar varios polígonos de cobertura en una misma acción (ver figura 5). En el caso de que el usuario esté seguro de que los archivos seleccionados cumplen con sus requerimientos, desde ese momento puede descargar los archivos de nube de puntos. Sin embargo, si no lo está, puede entrar a la función de visualización.

RDE27_06_fig05

Visualización

Es la tercera sección del portal; no solo se encarga de la visualización y descarga de los datos Lidar, también tiene varias funciones que mejoran la experiencia del usuario y que lo auxilian en determinar si la nube de puntos es la que desea descargar.

Haciendo uso del software Potree, la integración de las librerías three.js y WebGL permite manipular la visualización de la nube de puntos Lidar con el mouse del equipo; es decir, rotarla, girarla, acercarla, alejarla y visualizarla tanto en 2D como en 3D, además de manipular y visualizar una gama de colores respecto a la altura de la imagen a través de la ayuda de una barra lateral con las alturas máxima y mínima, incluyendo íconos de herramientas en la parte lateral izquierda y un pequeño mapa para selección rápida de otras cartas en la parte superior derecha del visualizador (ver figura 6, a y b).

RDE27_06_fig06

El formato .BIN de los archivos cortados en subpartes acorde con diversos niveles de detalle son cargados a través de los algoritmos para el manejo de la estructura de datos octree de Potree, donde se van cargando pequeños archivos (nodos octantes) en función de la perspectiva de visualización del modelo y el acercamiento a la imagen.

Los bloques de puntos que se encuentran más cercanos se visualizan en un detalle mayor en comparación con los que están alejados. Conforme el usuario va realizando acercamientos o modificaciones a la posición de la imagen, se continúa con la carga de nuevos pequeños bloques de puntos con diferente nivel de detalle (ver figura 7).

RDE27_06_fig07

El despliegue visual de las nubes de puntos puede ser modificado al aumentar el grosor de los puntos y permitir una superficie con menos huecos, lo que mejora la experiencia del usuario. Esto se realiza con herramientas basadas en los algoritmos que modifican el grosor de los puntos saturando la superficie, lo cual permite ver el modelo con cierta uniformidad. En las secciones donde se presentan cambios de las pendientes o relieve puede ser visualizado un efecto de sombras por medio de la técnica EDL que genera mayor detalle de las formas geométricas de la imagen y crea una mejor percepción de profundidad (ver figura 8, a y b).

RDE27_06_fig08

La plataforma también incorpora una serie de herramientas de medición para que el usuario tenga un análisis sencillo del modelo sin necesidad de descargar la nube de puntos a su equipo de cómputo; puede seleccionar un punto del mapa para mostrar la coordenada geográfica y la altura de uno específico de la nube, hacer mediciones de ángulos sobre la superficie, obtener la distancia existente entre dos o más puntos y el cálculo del área de un polígono trazado, así como dibujar una línea representativa del perfil de altura que puede ser modificada y descargada posteriormente (ver figura 9).

RDE27_06_fig09

Toda la información referente a las medidas que el usuario realice y que estuvieran representadas en la nube de puntos pueden ser descargadas en formato XML o JSON, así como el perfil de las alturas creado en formato LAS.

Por último, y como propósito fundamental de la plataforma en esta sección, se puede visualizar la síntesis de los metadatos, así como descargar los archivos completos de nubes de puntos. El formato en el que se muestran los metadatos de la nube de puntos se presenta acorde con los estándares manejados por el INEGI. Los metadatos pueden ser descargados en formato XML al mismo tiempo que se descarga la nube de puntos en formato LAS (ver figura 10).

RDE27_06_fig10

Conclusiones

La plataforma en su ambiente de desarrollo es soportada por dos servidores principales con el objetivo de que los usuarios puedan consultar y descargar los modelos tridimensionales: uno para acceso a las páginas de las tres secciones mencionadas, así como a los servicios web, y otro de base de datos para el registro y consulta de los archivos de nubes de puntos. Ambos utilizan procesador Intel Xeon E5-2620 de 2.4 GHz, 32 Gb de memoria y tres discos duros de 500 Gb.

Para la visualización de las nubes de puntos por medio de la plataforma, se utilizaron diversos equipos de cómputo con capacidades conocidas como de gamas baja y media. Para los equipos de los usuarios, se emplearon las características mostradas en la tabla.


RDE27_06_tab

En términos generales, el tiempo de carga de la visualización de los modelos digitales utilizando tanto las diversas configuraciones de equipos de cómputo con nubes de 1 302 117 hasta 7 564 001 puntos, el navegador Chrome v50, Firefox v56 y Microsoft Edge v25 mantuvo un rango de 1.83s a 3.92s. Los resultados obtenidos nos permiten concluir que se logró el objetivo del desarrollo.

La plataforma web forma parte de las estrategias del INEGI entre las que, además, se encuentran el promover de forma abierta el conocimiento y el uso de la información, así como prestar el servicio público de la misma (INEGI, 2017b). Los resultados del proyecto se suman a los esfuerzos por simplificar los procesos de análisis de la información.

Finalmente, se puede considerar para trabajos futuros la mejora de la plataforma para su uso desde aplicaciones diseñadas para dispositivos móviles, como teléfonos y tabletas. El desarrollo no contempló estas opciones, sin embargo, se realizaron algunas pruebas de funcionamiento que nos permitieron concluir que realizando modificaciones de ciertas funcionalidades en el código existe la posibilidad de que funcione sin problemas técnicos mayores.


Fuentes

Boucheny, Christian y Alejandro Ribes. Eye-Dome Lighting: a non-photorealistic shading technique”. Reporte técnico. Électricité de France (EDF). París, Francia, 2011.

Durón Díaz, Juan Javier. “Mesa de trabajo del continuo de elevaciones mexicano”, en: Memoria Convención Nacional de Geografía. Guadalajara, Jalisco, INEGI, 2007.

Fernández-Rivas, Jayson y Willington Siabato. “Procesamiento y accesibilidad de datos Lidar a través de aplicaciones distribuidas”, en: ETSI Topografía, Geodesia y Cartografía E-28031. Madrid, España, 2010.

Instituto Nacional de Estadística y Geografía (INEGI) (DE) http://www.inegi.org.mx/geo/contenidos/geodesia/lidar.aspx, consultado en octubre de 2017a.

_______ (DE) http://www.beta.inegi.org.mx/inegi/contenido/instituto.html, consultado en octubre de 2017b.

Martinez-Rubi, Oscar; Stefan Verhoeven; Maarten van Meersbergen; Markus Schuetz; Peter van Oosterom; Romulo Goncalves y Theo Tijssen. Taming the beast: Free and open-source massive point cloud web visualization. Netherlands eScience Center, Amsterdam, The Netherlands; Institute of Computer Graphics, Vienna University of Technology, Austria; Section GIS technology, Department OTB, Faculty of Architecture and the Built Environment, TU Delft, The Netherlands, 2015.

MDN webdocs. Tutorial WebGL (DE) https://developer.mozilla.org/es/docs/Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL, consultado en febrero de 2017.

LASzip. Open source LASzip (DE) https://www.laszip.org/, consultado en febrero de 2017.

Schuetz, Markus. Potree: Rendering Large Point Clouds in Web Browsers. Thesis in visual computing. Faculty of Informatics at the Vienna University of Technology, Viena, Austria, 2016a.

_______ PotreeConverter-Uniform Partitioning of Point Cloud Data into an Octree. Reporte técnico. Vienna University of Technology, Viena, Austria, 2016b.

OpenGL. The Industry's Foundation for High Performance Graphics (DE) https://www.opengl.org, consultado en junio de 2017.

Hugo René Valadez Oliva

Autor

Es mexicano. Tiene una Maestría en Administración de Tecnologías de Información por el Instituto Tecnológico y de Estudios Superiores de Monterrey, campus León, y es ingeniero en Sistemas Computacionales por el Instituto Tecnológico de León, con especialidad en Inteligencia Artificial. Actualmente, ocupa el puesto de responsable del área de Sistemas y Tecnologías 4.0 dentro del Centro de Innovación Aplicada en Tecnologías Competitivas (CIATEC), AC, con experiencia en metodologías ERP, MRP-II, MRP, SCM y desarrollo de aplicaciones informáticas. En fechas recientes, ha liderado proyectos como: desarrollo de prototipo web para la visualización de datos Lidar, sistema de monitoreo por sensores en calzado tipo hiking para prevenir el padecimiento de pie de trinchera, diseño y desarrollo de un sistema de incremento de altura para calzado de caballero de confort, desarrollo de un sistema prototipo para localización de personas por medio de un calzado GPS, desarrollo de un sistema de monitoreo de actividad física en calzado de tipo escolar y un sistema de detección de retrasos diarios de la producción por identificadores de radiofrecuencia.