Description
Checklist
- I have searched for similar issues.
- For Python issues, I have tested with the latest development wheel.
- I have checked the release documentation and the latest documentation (for
master
branch).
Proposed new feature or change
Performing several ICP registrations or evaluations with the same target point cloud can become very time consuming. However, a significant portion, and in some cases the overwhelming majority, of this time seems to be spent on recreating the target point cloud's KDTree on each call to Open3D's registration. In this cases I could significantly reduce my runtime by reusing the same KDTree for all of these operations. I believe the simplest way to make this possible in Open3D would be to expose the function GetRegistrationResultAndCorrespondences to the Python API.
This would also allow developers to create custom ICP loops with custom transformations and stopping conditions or run more involved evaluations without requiring the runtime of generating the KDTree.
This function could essentially act as a batched called to search_knn_vector_3d with a set of many starting points (in a more generic form that allows k>1, such a function could have many versatile uses, such as custom computations of point attributes like normal vectors or curvature using numpy functions instead of Python loops).
Thank you
References
No response
Additional information
No response