-
-
Notifications
You must be signed in to change notification settings - Fork 4.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve RadiusOutlierRemoval's performance #709
Conversation
Performance became at least twice faster than present |
Hey, thanks for your contribution ! I've seen your post on the PCL user list; |
Sory. |
There is something wrong with your code. The results are not the same and its much slower! Original code
Your code (it takes an eternity!)
|
Dear Victor Lamoine. I test RadiusOutlierRemoval performance again, but I can’t replicate below situation. I send my data file. Best regard. |
Give it a try, compile and install your PCL version with the modifications then test with your PCD file; Original code:
Your code:
It's not normal that I don't get the same results, and it took nearly 10 minutes! |
Hi I tried your test code, but runtime error is occured in organized.hpp line 57. [Original code] [My code] I changed a computer ,OS, and IDE. I think that NaN test in pcl::search::OrganizedNeighbor::radiusSearch() is ignored in Linux. If NaN value removal code is needed like a statistical_outlier_removal.hpp line 97, Cheers |
Hello, Ok I can reproduce your results now: Original code
Falcon4 code:
When using a point cloud with NaN the results are not the same between the original/Falcon4 code There are still things that need to be fixed! |
Hi I add a NaN skip code to applyFilterIndices function, and reproduce your result too. [Point cloud without NaN] [Point cloud with NaN] I coud't test Original, Because runtime error occured. I tested StaticalOutlierRemoval, and get similar result too. Bye |
So what is the conclusion after all? Will we actually downgrade performance for at least some users? |
Hi If PCL request that "user must remove NaN value before filtering", my code is faster than original. I don't know which is better.(To be or not to be.) Bye |
Hi Is it possible to remove NaN data in setInputCloud() function? (override) If it 's OK, I will try it. Bye |
@Falcon4 The problem is that RadiusOutlierRemoval should remove only outliers, not NaN values! |
Hi I changed applyIndices() function like voxel_grid.hpp L61. But after I merged source code, Failed message indicate below. Bye |
Hi, the failed Travis build is an internal Travis error, nothing to worry about. For your code, I think just testing |
Hi, I understand your test result. Bye |
Sorry for taking so long an please forget my comment about ``is_dense` from July. I'm fine with merging this if you can squash your commits into one. Thanks! |
Sorry. I missed operation (Push Revert in GitHub), so I repush a previous source code again. |
Have a look here: http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html. Basically you need git rebase -i HEAD~6, mark the second and third as fixup and remove the lines for the last two commits. If all is fine, you can push it using the --force option. Thanks! |
I did a squash operation, and made three commit. |
Almost ;), you have now 8 commits in your branch: https://github.com/PointCloudLibrary/pcl/pull/709/commits. I don't think you need three commits, but if, you should add reasonable commit messages. Also, do a git push -f, instead of the merge to get rid of the old commits. |
radius-serach & check k --> k-search & check radius
I think that I can squash my commit into one. |
Improve RadiusOutlierRemoval's performance
Thanks alot! And sorry for the long delay. |
Thank you for your advice about git too. |
Change search & check method.
radius-serach & check k --> k-search & check radius