derivadas.dev

Pablo Díaz Viñambres

MSc Informatics @ TUM

Efficient Neighbourhood Search in 3D Point Clouds Through Space-Filling Curves and Linear Octrees

C++ OpenMP LiDAR Research


This is my first research paper, written in collaboration with Miguel Yermo, Ph.D., Silvia R. Alcaráz, Ph.D., Óscar G. Lorenzo, Ph.D., Francisco F. Rivera, Prof. and José C. Cabaleiro, Prof. and available as a preprint in arXiv. It was developed as a continuation and expansion of my BSc Informatics thesis. The library developed in C++ is also available as open source in GitHub (see link above).

Octree built upon a Hilbert SFC reordered cloud.

Abstract

This work presents an efficient approach for neighbourhood searching in 3D point clouds, combining spatial reordering leveraging Space-Filling Curves (SFC), specifically Morton and Hilbert curves, with a linear Octree implementation. We also propose specialised search algorithms for fixed-radius and kNN queries, based on our linear Octree structures. Additionally, we introduce the novel concept of kNN locality histogram, which can be easily computed to characterise locality in data accesses, and we found to be directly related to cache misses and search performance. Our experiments reveal that SFC reordering significantly improves access to spatial data, reducing the number of cache misses from 25% to 75% and runtime by up to 50%. Moreover, we compare our proposal with several widely used Octree and KDTree implementations. Our method achieves a significant reduction in search time, up to 10x faster than existing solutions. Additionally, we analysed the performance of our neighbourhood searches (parallelised using OpenMP), demonstrating high scalability with the number of cores and the problem size. Notably, we observed a speedup of up to 36x when executing fixed-radius searches in a system with 40 cores. The results obtained indicate that our methods provide a robust and efficient solution for applications that require fast access to large-scale 3D point neighbour sets.

kNN locality histogram for cloud 5080_54400.Log-log plot highlighting improved performance via our algorithms.