Closed sun6s closed 3 years ago
你好, 不知道你是不是想问这个,
代码中通过
pairwise_distance, _ = self._KFNN(HIER_feat1, HIER_feat2)
来得到对应矩阵。
Hi, thank you for your interests! Please see the forward of this model (lit_corrnet3d_clean.py) :
def forward(self, xyz1, xyz2):
HIER_feat1, pooling_feat1 = self.encoder(transpose_xyz=xyz1.transpose(1, 2))
HIER_feat2, pooling_feat2 = self.encoder(transpose_xyz=xyz2.transpose(1, 2))
pairwise_distance, _ = self._KFNN(HIER_feat1, HIER_feat2)
similarity = 1/(pairwise_distance + 1e-6)
p = self.DeSmooth(similarity.transpose(1,2).contiguous()).transpose(1,2).contiguous()
return p
the returned P matrix is the correspondence matrix.
@ZENGYIMING-EAMON Thanks. I mean how to feed a pair of my own raw point clouds to get the learnable correspondence matrix. I want to use your method as initialization for non-rigid registration.
This code is organized based on the popular pytorch_lightning framework, you can load the ckpt and inference as following: model = LitCorrNet3D.load_from_checkpoint(CKPT_PATH) model.eval() p = model(xyz1, xyz2)
hello Did you succeed?
In the provided training data :
Keys: ['xyz1', 'xyz2'] xzy1: (1024, 3) Dataset_xyz1: , Shape: (1024, 3), Dtype: float32
& xzy2: (230000, 1024, 3) Dataset_xyz2: , Shape: (230000, 1024, 3), Dtype: float32
I think i am not being able to understand the dataset structure! why xyz1 has only 1 point cloud and xyz2 has 230k ? i would be really grateful if anyone can explain me that !
Great work! By feeding a pair of raw point clouds, how can I get the learnable correspondence matrix. Thanks.