pcdenoise: some questions

9 views (last 30 days)
Tom Repetti
Tom Repetti on 8 Nov 2021
Commented: Tom Repetti on 8 Dec 2021
Man, for such a simple heuristic, pcdenoise does have some questions:
1) Are self-distances included in the k nearest neighbor distances?
2) Can the threshold parameter be negative or zero? As described in the reference, it seems that the threshold parameter shouldn't really be allowed to be negative or zero, but Matlab doesn't seem to mind - it only wants a scalar.
3) Even for a positive threshold, is the filtering really happening as described in Rusu's paper?
If I take my point cloud and calculate d50 (the distances to the 50 nearest neighbors), then find the global mean and std of that distribution, I do not get the same number of inliers and outliers that pcdenoise returns, for a threshold value of 0.1. I realize the threshold is actually a multiplier on the global_std, which then yields a number that is added to and subtracted from the global_mean in order to yield a range of dknn values; the inliers are those points whose dknn values are within that dknn range, and vice-versa for the outliers.
Thanks for any help
  3 Comments
Tom Repetti
Tom Repetti on 9 Nov 2021
Wow. Even that second link doesn't work. Ever feel like the Internet is getting worse? Back In The Day, one could copy a URL and it would work after you pasted it somewhere. This allowed us more time for trudging uphill to school in the snow.
Google "Rusu" "Towards 3D point cloud based object maps for household environments"
The heuristic is captured in this very short blurb:

Sign in to comment.

Answers (1)

Vineet Joshi
Vineet Joshi on 8 Dec 2021
Hi
As please refer to the reference section of pcdenoise for Question 1 and Question 3.
For Question 2, please find the explanation below.
The threshold is parameter is defined as follows as given in the documentation:
A point is considered to be an outlier if the average distance to its k-nearest neighbors is above the specified threshold.
Clearly if you put a negative threshold, no point will satify the above criteria and you will get an empty set.
This can be seen by running the code given in the function documentation and keeping the threshold as negative.
Hope this helps.
Thanks
  1 Comment
Tom Repetti
Tom Repetti on 8 Dec 2021
> As please refer to the reference section of pcdenoise for Question 1 and Question 3.
I've read the reference section several times and can't find any anything that talks about self-distances (Question 1). Could you show me where it talks about that?
> Clearly if you put a negative threshold, no point will satify the above criteria and you will get an empty set.
> This can be seen by running the code given in the function documentation and keeping the threshold as negative.
Here is what happens when I run the code with a negative threshold. Clearly the outlier set is not empty.

Sign in to comment.

Categories

Find more on Spatial Search in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!