Page 1 of 1

Random Sampling of Point Clouds for ICP alignments

Posted: Wed Apr 22, 2020 9:36 am
by Karido
Hello everyone,

I read the documentation that states

"Random sampling limit: to drastically increase computation speed on big clouds, we use an optimization scheme. It consists in randomly sub-sampling the data cloud at each iteration. This parameter is the maximum number of sub-sampled points. The default value (50000) is generally a good guess and its incidence on the result is not perceivable. However it may be insufficient for very large clouds. So if you doubt about the results, or if you want to refine the registration even more and you are not afraid of waiting a long time, don't hesitate to increase this value (to fully deactivate this optimization scheme, simply input a number greater than the data cloud size)."

I understand the idea behind downsampling, but...

I am actually curious what exactly this optimization scheme does. It subsamples the point cloud for every iteration newly? And is the selection of subsampled points totally random? Why does it not take a voxel based downsampling appraoch?
Does this achieve meaningfully better results than the mentioned voxel grid based downsampling styles?

Thanks in advance.

Re: Random Sampling of Point Clouds for ICP alignments

Posted: Wed Apr 22, 2020 6:15 pm
by daniel
Yes, each time a different random subset of points is taken. It is important to take a different set at each iteration, otherwise the registration could be heavily biased (especially since by default we only take 50000 points I believe, among potentially million points). This was actually described in an article but I can't remember which one!

You could of course speed up the process by subsampling the cloud first, and then use all the points of the subsampled cloud. But you'd better have a very smart subsampling algorithm that would keep the meaningful (salient) features in your cloud. Which can take some time by the way ;). While here it's a very simple random selection (no intelligence).