AoxiangFan / LPM_Python

A Python implementation of the Locality Preserving Matching (LPM) method for pruning outliers in image matching.
13 stars 8 forks source link

Understanding .mat file with your code #1

Open Mohamed-DL opened 2 years ago

Mohamed-DL commented 2 years ago

Thank you for sharing your work. Could you please answer this question what are I1, I2, X and Y meant, and how do they relate to the ground truth? And how do you compute TP, TN, FP, FN to get the precision and recall?

I appreciate any help you can provide.

AoxiangFan commented 2 years ago

Well, I1 and I2 represent two images to be matched, X and Y are initial correspondences of the two images, established by SIFT here. The ground truth, i.e. the correct correspondences, is not given in our demo, which is needed to compute precision and recall. For your purpose, I think you can just use some publicly available datasets where the ground truth correspondences can be inferred. I suggest you read some state-of-the-art papers such as ''SuperGlue: Learning Feature Matching with Graph Neural Networks'' to find the commonly used datasets.

Mohamed-DL commented 2 years ago

Thank you for your answer and for referring me to SuperGlue paper. I have checked the code (with demo) but I have not found the GT.

I understand that X and Y are the feature matching of the two images before the NNDR using SIFT. Is that right?

Precision =Tp/Tp+Fp and Recall = Tp/Tp+Fn.

Do correct correspondences compute by SIFT after applying NNDR? Are correct correspondences and Tp the same? how Tp, Fp and Fn are computed?

Sorry I have seen lots of papers use them without explaining how they have been computed. Could you please assist me with this issue?

Thank you for your assistance