Skip to content
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

Fixes and improvements for FPCS and KFPCS #6073

Merged
merged 3 commits into from
Jul 5, 2024

Conversation

mvieth
Copy link
Member

@mvieth mvieth commented Jun 24, 2024

  • Replace bad random sampling: previously, the random sampling was not guaranteed to give the user-specified number of samples, was not guaranteed to choose all points with the same probability, and might choose a point more than once. The new approach works similar to the RandomSample class Now the RandomSample class is used
  • Number of threads can now be set to 0 to use automatic setting
  • linkMatchWithBase is not used any more. It has a bug that some indices are duplicated and others dropped. It is not necessary to use it any way because match and base_indices are already correctly ordered
  • ids and dists_sqr are now created with the correct size (no resize necessary later)
  • Add debug prints, improve documentation
  • fpcs and kfpcs tests: set fine tuned score threshold, early termination if a good solution is found.
  • kfpcs test: set higher maximum number of iterations (was previously automatically estimated as 19). This should fix the random (rare) failures on Azure pipelines

@mvieth mvieth added module: registration changelog: fix Meta-information for changelog generation labels Jun 24, 2024
@mvieth mvieth force-pushed the fpcs_fixes branch 6 times, most recently from 6e047ec to cca176a Compare June 30, 2024 15:54
- Replace bad random sampling: previously, the random sampling was not guaranteed to give the user-specified number of samples, was not guaranteed to choose all points with the same probability, and might choose a point more than once. The new approach works similar to the RandomSample class
- Number of threads can now be set to 0 to use automatic setting
- linkMatchWithBase is not used any more. It has a bug that some indices are duplicated and others dropped. It is not necessary to use it any way because match and base_indices are already correctly ordered
- ids and dists_sqr are now created with the correct size (no resize necessary later)
- Add debug prints, improve documentation
- fpcs and kfpcs tests: set fine tuned score threshold, early termination if a good solution is found.
- kfpcs test: set higher maximum number of iterations (was previously automatically estimated as 19). This should fix the random (rare) failures on Azure pipelines
@larshg
Copy link
Contributor

larshg commented Jul 4, 2024

Looks good, but just got two questions:

Why not use the RandomSample class to get samples?

Should linkMatchWithBase be removed?, since its only used in those two classes, though someone could have inherited from FPCSInitialAlignment we need to deprecate it first?

@mvieth mvieth merged commit 3c550ae into PointCloudLibrary:master Jul 5, 2024
13 checks passed
@mvieth mvieth deleted the fpcs_fixes branch July 5, 2024 11:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog: fix Meta-information for changelog generation module: registration
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants