unageek / fast-euclidean-clustering

🚀 Fast Euclidean clustering of point clouds ✨
MIT License
50 stars 6 forks source link
approximation c-plus-plus clustering cpp pcl point-cloud segmentation

🚀 fast-euclidean-clustering ✨

Fast Euclidean clustering (FEC) of point clouds implemented for PCL. No GPU is required!

FEC is an approximation algorithm. A cluster may be falsely splitted into multiple clusters, but not the other way around.

How to Use

Just copy fast_euclidean_clustering.h to local and #include it!

Benchmark

#points = 1,000,071

Tolerance (m) FEC (q = 0.0) FEC (q = 0.5) FEC (q = 0.9) EC
#clusters Time (s) #clusters Time (s) #clusters Time (s) #clusters Time (s)
0.01 464,420 0.9 442,669 0.9 441,151 1.0 441,151 1.0
0.1 22,592 0.4 20,422 0.7 20,261 4.5 20,261 8.9
1 175 0.3 163 0.8 160 15.0 160 795.8
10 37 0.3 35 0.7 33 11.0 N/A¹ >1,000¹
100 2 0.3 2 0.5 2 2.7 N/A¹ >1,000¹

¹ Computation did not complete within 1,000 seconds.

Example

See examples/fec/main.cc.