Registration_ransac_based_on_correspondence retrieves wrong translation vector
- Dominant language
- C++
- Stars
- 14k
- Forks
- 2.6k
- Avg merge
- 5d 18h
- Merged PRs (30d)
- 6
Description
Hi,
I am having issues with this method : open3d.pipelines.registration.registration_ransac_based_on_correspondence
What I am trying to do is to filter wrong correspondences, that I have obtained between two point cloud using a deep learning feature descriptor.
I know that the 2 point cloud are close one to the other, so the transformation matrix should be close too identity.
The ransac pipeline is able to filter wrong correspondences but the transformation matrix seems to be inconsistent for its last column. Scaling and rotation are good, close to identity but the algorithm retrieves a huge translation vector, which is changing a lot depending on the ransac_n parameter.
This behavior is obtained when running those lines :
correspondences_a = data["Correspondences a"]
kpts_xyz = correspondences_a[:,4:7]
target_xyz = correspondences_a[:,7:10]
kpts_pcd = o3d.geometry.PointCloud()
target_pcd = o3d.geometry.PointCloud()
kpts_pcd.points = o3d.utility.Vector3dVector(kpts_xyz)
target_pcd.points = o3d.utility.Vector3dVector(target_xyz)
corres_list = np.ones((kpts_xyz.shape[0],2))*np.arange(kpts_xyz.shape[0]).reshape(-1,1)
results = o3d.pipelines.registration.registration_ransac_based_on_correspondence(
source = kpts_pcd,
target = target_pcd,
corres = o3d.utility.Vector2iVector(corres_list),
max_correspondence_distance = .5,
estimation_method = o3d.pipelines.registration.TransformationEstimationPointToPoint(),
ransac_n=5,
checkers =
[],
criteria = o3d.pipelines.registration.RANSACConvergenceCriteria(100000, 0.999))
On the data attached :
[data.zip](https://github.com/intel-isl/Open3D/files/6425977/data.zip)
When extracting the correspondences table, column 4:6 are the coordinate of the keypoints and columns 7:9 are the coordinate of the correspondence in the target point cloud (column 2 is the norm between the two points)
**Environment (please complete the following information):**
- Ubuntu 20.04,
- Python 3.6)
- Open3D version: 0.12
- Installed via conda
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.