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

Various suggestions #348

Open
Antzyx opened this issue Sep 26, 2024 · 0 comments
Open

Various suggestions #348

Antzyx opened this issue Sep 26, 2024 · 0 comments

Comments

@Antzyx
Copy link

Antzyx commented Sep 26, 2024

Dear authors, thank you very much for your work. I have used your library to a limited extent, and would have a couple of suggestions.

  • returning the registration error as output of the various registration functions would be very useful. In particular, it is one of the input values of the M3C2 class, therefore it would make sense that functions that come earlier in the pipeline return it. I would either have the function return it along with the Transform object, or I would subclass Transform into an ICPTransform or similar, and make the error and other useful metrics attributes of this subclass.
  • similarly, M3C2 does not return which of the different choices for normal_radii was ultimately chosen
  • although icp_with_stable_areas is already featured in the tutorial section on the documentation, it is not released yet. Perhaps consider releasing an early version as a minor release or removing the corresponding section for now
  • icp_with_stable_areas's longest part seems to be to compute this supervoxel map at the start. When registering several point clouds to a single reference point cloud, recomputing the supervoxel map for the reference point cloud every time is redundant and takes a lot of time. Perhaps consider accepting several compared point clouds as you do for other algorithms such as M3C2. Alternatively, you could make this voxel map another saveable attribute of the Epoch.
  • icp_with_stable_areas seems to struggle to find a good (max_bb_change, dis_threshold) under certain circumstances, even using the recommended ways of setting up the input parameters. This seems to be related to areas being present in one of the 2 point clouds but not the other, but I am not sure if this is the only factor. The problem is, it takes quite a while to arrive to this point, meaning that a lot of time is spent waiting until the crash happens, only to run again with relaxed parameters. Maybe one of those three solutions could help :
  1. improving the robustness to point clouds that do not overlap well (although that might not solve the entire problem)
  2. allowing several sets of parameters as input to searh again if the first set does not work
  3. automatically relaxing the parameters if the first set does not work

Keep up the good work and hope that's useful !

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

No branches or pull requests

1 participant