XuyangBai / D3Feat

[TensorFlow] Official implementation of CVPR'20 oral paper - D3Feat: Joint Learning of Dense Detection and Description of 3D Local Features https://arxiv.org/abs/2003.03164
MIT License
261 stars 38 forks source link

Evaluation results on ETH are different from the paper #27

Closed Gilgamesh666666 closed 3 years ago

Gilgamesh666666 commented 4 years ago

Hi@XuyangBai, I run the test code on ETH dataset with 3dmatch pre-train model but I get the following results which are different with the paper:


[80.97826086956522, 70.93425605536332, 46.95652173913044, 28.000000000000004] Avergae Matching Recall: 62.13183730715287% All 8 scene, average recall: 56.71725966601474% All 8 scene, average num inliers: 8.667818363226777 All 8 scene, average num inliers ratio: 0.1517589764200676

I have changed the following codes:

In tester.py: ` # for i, var in enumerate(my_vars):

print(i, var.name)

    for v in my_vars:
        if 'kernel_points' in v.name:
            rescale_op = v.assign(tf.multiply(v, 0.0625 / 0.03))
            self.sess.run(rescale_op)`

In test_eth.py: `# Should change the parameter of 3DMatch model to adopt to ETH

import pdb

#pdb.set_trace()
config.first_subsampling_dl = 0.0625
config.dataset = 'ETH'
#config.KP_extent = 2`

And i use the log : chosen_log = 'results/Log_circleloss'

The results are run under 250 predicted keypoints, and i also run them under 5000 predicted keypoints, gotting the following results:


[79.34782608695652, 65.39792387543253, 36.52173913043478, 31.2] Avergae Matching Recall: 58.345021037868165% All 8 scene, average recall: 53.11687227320595% All 8 scene, average num inliers: 114.00879929304588 All 8 scene, average num inliers ratio: 0.13993148638504888

Could you please give me some hint about that? Thank you very much!

XuyangBai commented 3 years ago

Hi, Sorry for the late reply, I seemed to have missed your message. Did you choose the hard selection strategy by uncommenting the code here? Another reason could be the scaling up, I scale up the range of kernel points by 0.10/0.03 or 0.11/0.03 if remember correctly, instead of 0.0625.

XuyangBai commented 3 years ago

Close due to inactivity.