Skip to content

Make GICP use CorrespondenceEstimation #6278

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

Merged

Conversation

mvieth
Copy link
Member

@mvieth mvieth commented May 10, 2025

The main benefit is that CorrespondenceEstimation is parallelized, so GICP can benefit from that. But even with 1 thread, the new code is slightly faster due to the improved way of computing the mahalanobis matrix (invert3x3SymMatrix uses the fact that the matrix is symmetric and is thus faster than the general-case .inverse()).
Otherwise, the behavior is unchanged.

@mvieth mvieth added changelog: enhancement Meta-information for changelog generation module: registration labels May 10, 2025
@mvieth mvieth force-pushed the gicp_correspondence_estimation branch from a6cb824 to ff20238 Compare May 10, 2025 16:31
The main benefit is that CorrespondenceEstimation is parallelized, so GICP can benefit from that. But even with 1 thread, the new code is slightly faster due to the improved way of computing the mahalanobis matrix (invert3x3SymMatrix uses the fact that the matrix is symmetric and is thus faster than the general-case .inverse()).
@mvieth mvieth force-pushed the gicp_correspondence_estimation branch from ff20238 to ade2778 Compare May 10, 2025 18:03
@mvieth mvieth marked this pull request as ready for review May 11, 2025 09:43
@larshg larshg added this to the pcl-1.15.1 milestone May 12, 2025
@larshg
Copy link
Contributor

larshg commented May 12, 2025

This is a subset of #5287 ?

@mvieth
Copy link
Member Author

mvieth commented May 12, 2025

This is a subset of #5287 ?

Oh, right, I forgot about that pull request. Comparing the two, there are definitely some similarities (replacing GICP's for-loop + searchForNeighbors by determineCorrespondences of a correspondence estimation class), but also some differences, for example my improvement of the mahalanobis matrix computation and explicitly activating parallel correspondence estimation via setNumberOfThreads. In addition, I think the changes regarding the correspondence criteria in #5287 would need to be carefully examined: does it make sense to add a new class GICPConvergenceCriteria? Could DefaultConvergenceCriteria not be used? Overall, I think that #5287 applies a lot of changes at once and would require quite some time for reviewing.

@mvieth mvieth merged commit 46f15a6 into PointCloudLibrary:master May 18, 2025
13 checks passed
@mvieth mvieth deleted the gicp_correspondence_estimation branch May 18, 2025 13:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog: enhancement Meta-information for changelog generation module: registration
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants