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

The performance decreases dramatically if the point cloud sampling is changed #27

Open
abc-def-g opened this issue Nov 23, 2022 · 3 comments

Comments

@abc-def-g
Copy link

abc-def-g commented Nov 23, 2022

Currently, the first point cloud is randomly sampled from the ground-truth point cloud. And the second point cloud is rotated and translated from the first point cloud as indicated by the following line of code. These two point clouds have an exact one-to-one correspondence and the relative point distribution in each local neighborhood is exactly the same.
I have tried to randomly sample the second point cloud from the rotated and tranlated ground-truth point cloud, which is a more practical scenario since we should not expect the point clouds for registration have an exact one-to-one correspondence, and the performance decreases dramatically.
This issue should draw the attention of the authors: this issue in some degree indicates that the network may not learn to do the registration, but learn to recognize the relative local point distribution.

dcp/data.py

Line 113 in bcd7def

pointcloud2 = rotation_ab.apply(pointcloud1.T).T + np.expand_dims(translation_ab, axis=1)

@abc-def-g
Copy link
Author

@WangYueFt Any response to this issue?

@cherwinsd
Copy link

I also found this problem in another point cloud registration network. When using a rigid transformation network that is different from the training network during testing, the registration performance will decrease significantly, or even fail to register the point cloud. Have you found any reason for this

@lkccu
Copy link

lkccu commented May 27, 2023

As far as I can tell, the ICP-based approach assumes one-to-one point correspondence, which seems to be the reason it doesn't extend to the scenario you mentioned. You can try a CpD-based approach.

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

3 participants