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

Similar to `reg.getFitnessScore(); #83

Open
bear-rabbit opened this issue Aug 8, 2024 · 4 comments
Open

Similar to `reg.getFitnessScore(); #83

bear-rabbit opened this issue Aug 8, 2024 · 4 comments
Labels
enhancement New feature or request

Comments

@bear-rabbit
Copy link

Hello! We have used your previous work, Fast_GICP, in our project and it performed very well. Therefore, we would like to try your new work, small_gicp. However, does it have a function similar to reg.getFitnessScore();?

@bear-rabbit bear-rabbit added the enhancement New feature or request label Aug 8, 2024
@koide3
Copy link
Owner

koide3 commented Aug 8, 2024

In RegistrationResult, there are two metrics that may be used as an alternative for getFitnessScore().

  • num_inliers represents the number of source points with valid correspondences (i.e., "num of overlapping points").
  • error represents the final registration error (sum of distances between corresponding points)

@bear-rabbit
Copy link
Author

Hello! I’m glad that the metrics you provided are usable. However, we still have one question: both smallgicp and fastgicp exhibit a significant fluctuation in runtime, varying from approximately 100ms to 1000ms on the same device running the same program(Average Times). I’m unsure how to adjust the program to achieve maximum efficiency.

@koide3
Copy link
Owner

koide3 commented Aug 9, 2024

It may stem from data association, which sometimes causes an oscillation of the objective function. A quick fix is to set the maximum optimization iteration to a small number (e.g., 10 is sufficient for most cases). If you could provide example data, I can try implementing an oscillation compensation algorithm.

@bear-rabbit
Copy link
Author

Okay, I tried the method you suggested (reducing the number of iterations), and it indeed achieved a relatively good result. In fact, we are using this algorithm as the final step in our relocalization algorithm. The effect might not be very noticeable when applied to a single dataset, but the change in overall processing time can be quite significant. The following two point cloud frames are from our test data: on our i7 10th generation device, the processing time is approximately 400ms to 900ms (with 10 iterations).
data.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants