RPMNet icon indicating copy to clipboard operation
RPMNet copied to clipboard

Find the nearest neighbor and SVD to solve for the transformation

Open BiaoBiaoLi opened this issue 4 years ago • 9 comments

Hi yewzijian: Thanks your work,I want ask two questions:

  1. As for finding the nearest neighbor: group_idx[sqrdists > radius ** 2] = N group_idx = group_idx.sort(dim=-1)[0][:, :, :nsample] In the process, did you not use the 64 closest points? just took the 64 points that satisfy the distance requirement?
  2. SVD to solve for the transformation: In this function below: transform = compute_rigid_transform(xyz_src, weighted_ref, weights=torch.sum(perm_matrix, dim=2)) cov = a_centered.transpose(-2, -1) @ (b_centered * weights_normalized) the cov should be cov = a_centered.transpose(-2, -1) @ b_centered ?

BiaoBiaoLi avatar Aug 19 '20 16:08 BiaoBiaoLi

  1. Yes, we select up to 64 points that within the desired radius as in the original PointNet++. This works better than using the closest points in practice.
  2. The covariance is weighted so we scale the contribution of each correspondence by its weight.

yewzijian avatar Aug 20 '20 06:08 yewzijian

ok,thanks

BiaoBiaoLi avatar Aug 25 '20 13:08 BiaoBiaoLi

Thanks your answer,I also want to konw the the if the codes of RPM in your paper is open source.

BiaoBiaoLi avatar Sep 03 '20 15:09 BiaoBiaoLi

I think you are referring to the license? The source code uses a MIT license, as seen in the license file in the repository.

yewzijian avatar Sep 04 '20 00:09 yewzijian

Sorry,I don't make myself clear. I want to konw if the codes of RPM(New algorithms for 2D and 3D point matching: pose estimation and correspondence) in your paper is open source. I can't find it in Internet.

BiaoBiaoLi avatar Sep 05 '20 16:09 BiaoBiaoLi

Oh, you mean the codes of the original RPM? The author's codes can be found here. This version is written for non-rigid point cloud registration.

For the results in my paper, I used my own implementation.

yewzijian avatar Sep 06 '20 00:09 yewzijian

Yes,thank you so much, I find it for a long time.

BiaoBiaoLi avatar Sep 06 '20 02:09 BiaoBiaoLi

Hi yewzijian: Thanks your work,I also want to know why sinkhorn use logarithms to normalize the matrices? what i read the original RPM is showed below, it does not use logarithms. image

Can you tell me what is the difference?

BiaoBiaoLi avatar Oct 03 '20 14:10 BiaoBiaoLi

We perform the normalization in log space in the actual implementation for numerical stability. The operations are otherwise the same, e.g. the division in linear space is changed to subtraction in log space.

Zi Jian

yewzijian avatar Oct 12 '20 05:10 yewzijian