228 research outputs found

    Fast LiDAR data registration using GPUs

    Get PDF
    En los últimos años, la llegada de las cámaras de profundidad de bajo costo y sensores LiDAR ha incentivado a las industrias a invertir en estas tecnologías, lo cual incluye también mayor interés en investigaciones sobre procesamiento digital de señales. En esta ocasión, la reconstrucción tridimensional de túneles mineros utilizando LiDARs y un robot de auto-navegación ha sido propuesta como proyecto de investigación, y el presente trabajo forma parte en cargándose del alineamiento de nubes de puntos tridimensionales en tiempo real, un proceso que es más conocido como Registro de Nubes de Puntos. Existen muchos algoritmos que pueden resolver este problema, pero para el proyecto, el algoritmo solo necesita calcular la alineación fina y rígida. Al comparar los algoritmos de registro más avanzados, se encontró que el popular algoritmo ICP es el más adecuado para este caso debido a su alta robustez y eficiencia. Dentro de este algoritmo, se encuentran 3 pasos simples: relación, minimización y transformación, junto con una colección de variaciones de estos pasos que han sido desarrolladas a lo largo de las últimas décadas. Basándose en esto, en este trabajo se diseñó e implementó un algoritmo ICP paralelo en CPU y GPU. Además, las optimizaciones en recursos de memoria, ocupación de núcleos y el uso de la técnica de desenrollado de bucles para la implementación en GPU permiten que la implementación propuesta deI ICP alcance un rendimiento 95 veces más rápido que implementaciones de CPU altamente optimizadas.In the last years, the advent of low-cost depth cameras and LiDAR sensors has encouraged industries to invest in these technologies, which includes research about digital signal processing. This time, 3D surfaces reconstructions of mining tunnels using LiDARs and a self-navigation robot have been proposed as a research project and this work is in charge of performing the alignment of data that come from the LiDARs in real-time, a process that is most known as 3D Point Cloud Registration. Many algorithms can solve this problem, but for the project, the algorithm only needs to compute for fine-rigid alignment. Comparing state-of-the-art registration algorithms, it is found that the popular ICP algorithm is the best suited for this case since its high robustness and efficiency. Inside this algorithm, there are 3 simple steps: matching, minimization, and transformation, and a diverse collection of variations of these steps that have been developed through the last decades. Based on this, a parallel ICP algorithm is designed and implemented in CPU and GPU. Moreover, optimizations in memory resources, cores occupancy, and the usage of the loop unrolling technique for the GPU implementation lead the proposed ICP implementation to reach a performance of 95 times faster than highly-optimized CPU implementations

    ImMesh: An Immediate LiDAR Localization and Meshing Framework

    Full text link
    In this paper, we propose a novel LiDAR(-inertial) odometry and mapping framework to achieve the goal of simultaneous localization and meshing in real-time. This proposed framework termed ImMesh comprises four tightly-coupled modules: receiver, localization, meshing, and broadcaster. The localization module utilizes the prepossessed sensor data from the receiver, estimates the sensor pose online by registering LiDAR scans to maps, and dynamically grows the map. Then, our meshing module takes the registered LiDAR scan for incrementally reconstructing the triangle mesh on the fly. Finally, the real-time odometry, map, and mesh are published via our broadcaster. The key contribution of this work is the meshing module, which represents a scene by an efficient hierarchical voxels structure, performs fast finding of voxels observed by new scans, and reconstructs triangle facets in each voxel in an incremental manner. This voxel-wise meshing operation is delicately designed for the purpose of efficiency; it first performs a dimension reduction by projecting 3D points to a 2D local plane contained in the voxel, and then executes the meshing operation with pull, commit and push steps for incremental reconstruction of triangle facets. To the best of our knowledge, this is the first work in literature that can reconstruct online the triangle mesh of large-scale scenes, just relying on a standard CPU without GPU acceleration. To share our findings and make contributions to the community, we make our code publicly available on our GitHub: https://github.com/hku-mars/ImMesh

    Monocular 3D Scene Reconstruction for an Autonomous Unmanned Aerial Vehicle

    Get PDF
    Rekonstrukce 3D modelu prostředí je klíčovou částí autonomního letu bezpilotní helikoptéry (UAV). Kombinace inerciální měřicí jednotky (IMU) a kamery je běžnou a dostupnou senzorovou sadou, jež je schopna získat informaci o měřítku prostředí. Tato práce si klade za cíl vyvinout algoritmus řešící problém 3D rekostrukce pro tyto senzory za využití existujících metod vizuálně-inerciální lokalizace (VINS). V práci jsou navrženy dva algoritmy, odlišené způsobem, jakým extrahují korespondence mezi snímky: párovací algoritmus se širokou bází a algoritmus založený na trackingu s malou bází. Také je implementována metoda vylepšující výslednou 3D strukturu po letu. Algoritmy jsou otestovány na veřejně dostupné datové sadě. Navíc jsou otestovány v simulátoru a je proveden experiment v reálném prostředí. Výsledky ukazují, že algoritmus založený na trackingu dosahuje výrazně lepších výsledků. Navíc testy na datech a experimenty v reálném prostředí ukazují, že algoritmus může být nasazen v praktických aplikačních situacích.The real-time 3D reconstruction of the surrounding scene is a key part in the pipeline of the autonomous flight of unmanned aerial vehicle (UAV). The combination of an inertial measurement unit (IMU) and a monocular camera is a common and inexpensive sensor setup that can be used to recover the scale of the environment. This thesis aims to develop an algorithm solving this problem for this particular setup by leveraging the existing visual-inertial navigation system (VINS) odometry algorithms for localisation. Two algorithms are developed, wide-baseline matching-based and small-baseline tracking-based. Also, an offline post-processing structure-refinement step is implemented to further improve the resulting structure. The algorithms and the refinement step are then evaluated on publicly available datasets. Furthermore, they are tested in a simulator, and a real-world experiment is conducted. The results show that the tracking-based algorithm is significantly more performant. Importantly, tests on the datasets and the real-world experiments suggest that this algorithm can be practically employed in application scenarios

    Polylidar3D -- Fast Polygon Extraction from 3D Data

    Full text link
    Flat surfaces captured by 3D point clouds are often used for localization, mapping, and modeling. Dense point cloud processing has high computation and memory costs making low-dimensional representations of flat surfaces such as polygons desirable. We present Polylidar3D, a non-convex polygon extraction algorithm which takes as input unorganized 3D point clouds (e.g., LiDAR data), organized point clouds (e.g., range images), or user-provided meshes. Non-convex polygons represent flat surfaces in an environment with interior cutouts representing obstacles or holes. The Polylidar3D front-end transforms input data into a half-edge triangular mesh. This representation provides a common level of input data abstraction for subsequent back-end processing. The Polylidar3D back-end is composed of four core algorithms: mesh smoothing, dominant plane normal estimation, planar segment extraction, and finally polygon extraction. Polylidar3D is shown to be quite fast, making use of CPU multi-threading and GPU acceleration when available. We demonstrate Polylidar3D's versatility and speed with real-world datasets including aerial LiDAR point clouds for rooftop mapping, autonomous driving LiDAR point clouds for road surface detection, and RGBD cameras for indoor floor/wall detection. We also evaluate Polylidar3D on a challenging planar segmentation benchmark dataset. Results consistently show excellent speed and accuracy.Comment: 40 page

    One machine, one minute, three billion tetrahedra

    Full text link
    This paper presents a new scalable parallelization scheme to generate the 3D Delaunay triangulation of a given set of points. Our first contribution is an efficient serial implementation of the incremental Delaunay insertion algorithm. A simple dedicated data structure, an efficient sorting of the points and the optimization of the insertion algorithm have permitted to accelerate reference implementations by a factor three. Our second contribution is a multi-threaded version of the Delaunay kernel that is able to concurrently insert vertices. Moore curve coordinates are used to partition the point set, avoiding heavy synchronization overheads. Conflicts are managed by modifying the partitions with a simple rescaling of the space-filling curve. The performances of our implementation have been measured on three different processors, an Intel core-i7, an Intel Xeon Phi and an AMD EPYC, on which we have been able to compute 3 billion tetrahedra in 53 seconds. This corresponds to a generation rate of over 55 million tetrahedra per second. We finally show how this very efficient parallel Delaunay triangulation can be integrated in a Delaunay refinement mesh generator which takes as input the triangulated surface boundary of the volume to mesh

    Icosatree Data Partitioning of Massive Geospatial Point Clouds with User-Selectable Entities and Surface Modeling

    Get PDF
    Massive point cloud data sets are currently being created and studied in academia, the private sector, and the military. Many previous attempts at rendering point clouds have allowed the user to visualize the data in a three-dimensional way but did not allow them to interact with the data and would require all data to be in memory at runtime. Recently, a few systems have emerged that deal with real-time rendering of massive point clouds with on-the-fly level of detail modification that handles out-of-core processing but these systems have their own limitations. With the size and scale of massive point cloud data coming from LiDAR (Light Detection and Ranging) systems, being able to visualize the data as well as interact and transform the data is needed. Previous work in out-of-core rendering showed that using Octrees and k-d trees can increase the availability of data as well as allow a user to visualize the information in a much more useful manner. However, viewing the data isn’t enough; applying work in context-aware selection and surface creation the visualization system would greatly benefit in usability and functionality. This paper explores a new data structure called an Icosatree, or icosahedral tree, that can be used to partition a point cloud dataset in the same fashion as an Octree is currently used. However, the Icosatree is made from triangular prism sub-cells which are tangential to the ellipsoidal surface used by Earth-based projected coordinate systems. In doing so, as new sub-cells are added to the rendering system, a much more uniform visualization emerges. Along the same lines, this paper applies portions of the aforementioned context-aware selection and surface creation algorithms to the resulting visualization such that a user may triangulate, prune and/or export portions of the point cloud dataset using an intuitive three dimensional interface and user-modifiable set of parameters. This allows the user to save items of interest for later analysis
    corecore