Point-cloud clustering is a key task in applications like autonomous
vehicles and digital twins, where rotating LiDAR sensors commonly
generate point-cloud measurements in data streams. The state-ofthe-
art algorithms, Lisco (and its parallel equivalent P-Lisco), define
a single-pass distance-based clustering. However, while outperforming
other batch-based techniques, they cannot incrementally cluster
point-clouds from consecutive LiDAR rotations as it cannot exploit
result-similarity between rotations.
The simplicity of Lisco, along with the potential of improvements
through utilization of computational overlaps, form the motivation
of a more challenging objective studied here. We propose Parallel
and Incremental Lisco (pi-Lisco), which, with a simple yet efficient
approach, clusters LiDAR data in streaming sliding windows,
reusing the results from overlapping portions of the data, thus, enabling
single-window (i.e., in-place) processing. Moreover, pi-Lisco
employs efficient work-sharing among threads, facilitated by the
ScaleGate data structure, and embeds a customised version of the
STINGER concurrent data structure. Through an orchestration of
these key ideas, pi-Lisco is able to lead to significant performance
improvements. We complement with an evaluation of pi-Lisco, using
the Ford Campus real-world extensive data-set, showing (i) the
computational benefits from incrementally processing the consecutive
point-clouds; and (ii) the fact that pi-Lisco’ parallelization
leads to continuously increasing sustainable rates with increasing
number of threads, shifting the saturation point of the baseline.
4. 4
Lidar Point Cloud Clustering
Lidar Sensor
360 degrees
Raw LiDAR data points
Clustering
Clustered data points
E.g., Density-based,
Distance-based
5. 5
Lidar Point Cloud Clustering Challenges
360
full
rotation
view
One rotation
P points O(P2)
Search for nearest
neighbours
1 [Rusu et al., Semanztic3D2010]
distance < 𝜀
distance >
𝜀
Euclidean-distance based clustering1
6. 6
Lidar Point Cloud Clustering Challenges
360
full
rotation
view
One rotation
P points O(P2)
Search for nearest
neighbours
Disjoint rotations
Report period
Overlapping rotations
7. 7
Lidar Point Cloud Clustering Approaches
Batch Processing
Results
Kd-tree
DBSCAN1
Euclidean Distance-based2
…
1 [Ester et al.,Density-based1996]
2 [Rusu et al., Semantic3D2010]
Continuous Processing
Lisco / pLisco3
Results
𝜀
3 [Najdataei et al.,Continuous2018]
8. 8
Lidar Point Cloud Clustering Approaches
Batch Processing
Results
Kd-tree
DBSCAN1
Euclidean Distance-based2
…
Continuous Processing
Lisco / pLisco3
Results
𝜀
3 [Najdataei et al.,Continuous2018]
1 [Ester et al.,Density-based1996]
2 [Rusu et al., Semantic3D2010]
The Problem: redundant computations
for overlapping windows
12. P
Neighbourhood graph snapshot
before applying an update for P
1
6
5
4
3
2
12
Pi-Lisco Overview
1. Keeping the edge
P
1
6
5
4
3
2
𝜀-neighbours of Pold ={1,2,4}
𝜀-neighbours of Pnew = {4, 6}
3. Removing an old edge
P
1
6
5
4
3
2
2. Adding a new edge
P
1
6
5
4
3
2
Extended neighbourhood of Pold={1,2,3,4}
Lidar points
Indicate 𝜀-neighbours
C1
C2
C3
S1 … Ss
l1
…
lL
𝜀
Pnew
13. P
Neighbourhood graph snapshot
after applying the update of P
1
6
5
4
3
2
13
Pi-Lisco Overview
1. Keeping the edge
P
1
6
5
4
3
2
3. Removing an old edge
P
1
6
5
4
3
2
2. Adding a new edge
P
1
6
5
4
3
2
𝜀-neighbours of Pold = {1, 2, 4} 𝜀-neighbours of Pnew = {4, 6}
C2
C3
C1
P
Neighbourhood graph snapshot
before applying an update for P
1
6
5
4
3
2
C1
C2
C3
S1 … Ss
l1
…
lL
𝜀
Pnew
14. S1 … Ss
l1
…
lL
Pnew
P
Neighbourhood graph snapshot
before applying an update for P
1
6
5
4
3
2
P
Neighbourhood graph snapshot
after applying the update of P
1
6
5
4
3
2
14
Pi-Lisco Key Idea
Extended neighbourhood of Pold = {1, 2, 3, 4}
Extended neighbourhood of Pnew= {2, 3, 4, 6}
𝜀-neighbours of Pold = {1, 2, 4} 𝜀-neighbours of Pnew = {4, 6}
T3
T2
T1 T4
Affected points = {1, 2, 3, 4, 6}
[Gulisano et al.,Scalejoin2016]
C1
C2
C3
C2
C3
C1
15. Adapted Stinger Data Structure
S1 … Ss
l1
…
lL
Pnew
P
Neighbourhood graph snapshot
before applying an update for P
1
6
5
4
3
2
P
Neighbourhood graph snapshot
after applying the update of P
1
6
5
4
3
2
15
Pi-Lisco Key Idea
𝜀-neighbours of Pold = {1, 2, 4} 𝜀-neighbours of Pnew = {4, 6}
T3
T2
T1 T4
C1
C2
C3
C2
C3
C1
[Ediger et al.,Stinger2012]
16. 16
Clustering Implementation in an SPE
Reporti Reporti+1
Reporti-1
rotation i
rotation i+1
time
Lidar Data
Multi Window
Trigger the results and evict the window
Wi
Wi+1
Original Lisco
17. 17
Clustering Implementation in an SPE
Reporti Reporti+1
Reporti-1
rotation i
rotation i+1
time
Lidar Data
Multi Window
Single Window
Trigger the results and evict the window
Wi
Wi+1
W
Trigger the results and slide the window
Original Lisco
Pi-Lisco
18. 18
Evaluation Setup
• Pi-Lisco is implemented in Java and open source https://github.com/dcs-chalmers/pilisco
• Baseline Original Lisco
• Liebre SPE https://github.com/vincenzo-gulisano/Liebre
• Original Lisco as a multi-window aggregate
• Pi-Lisco as a single-window aggregate
• real-world data Velodyne HDL-64E Lidar
• Intel Xeon E5-2695 system (2..10 GHz, 2 sockets with 18 cores each, 64GB RAM)
• 4 performance metrics:
• Incremental processing workload
• Average processing time per tuple
• Sustainable throughput
• Scalability