isl-org / isl-org/Open3D

Expose registration.GetRegistrationResultAndCorrespondences

Open
#6,315 1 comment 0 reactions 1 assignee Claimed by @theNded View on GitHub
feature request neighbor search
Dominant language
C++
Stars
14k
Forks
2.6k
Avg merge
5d 18h
Merged PRs (30d)
6

Description

### Checklist

- [X] I have searched for [similar issues](https://github.com/isl-org/Open3D/issues).
- [X] For Python issues, I have tested with the [latest development wheel](http://www.open3d.org/docs/latest/getting_started.html#development-version-pip).
- [x] I have checked the [release documentation](http://www.open3d.org/docs/release/) and the [latest documentation](http://www.open3d.org/docs/latest/) (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_

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.