rpautrat / LISRD

Local Invariance Selection at Runtime for Descriptors (LISRD)
MIT License
256 stars 19 forks source link

Matching problem #9

Closed ChrisLLLLL closed 2 years ago

ChrisLLLLL commented 3 years ago

Hello, sorry to disturb you. I try to use the same two images for evaluation---superpoint-master and LISRD Such as superpoint-master : python match_features_demo.py sp_v6 $DATA_PATH/HPatches/i_pool/1.ppm $DATA_PATH/i_pool/6.ppm and demo_lisrd.ipynb But the matching result of superpoint is much better than demo_lisrd,the result in lisrd There are only a few matches, and the accuracy is not high.Maybe it’s a mistake in my operation. I think the result should not be like this. LISRD maybe better in day-night changes or rotation changes. So could you give me some suggestions? Thank you very much.

image

rpautrat commented 3 years ago

Hi,

Did you try on other images, and first with easier images? Because one cannot conclude much from only one pair... If LISRD works on easier images, then your setup should be fine.

The goal of LISRD is actually to be more accurate than SuperPoint when there are NO rotation or light changes. When there are image changes, LISRD is only supposed to be as good as SuperPoint.

ChrisLLLLL commented 3 years ago

Thank you for your reply, I tryed to evaluate the chessboard. But lisrd is less than superpoint . Is it related to pretrained weight? lisrd use superpoint_v1.pth but superpoint-master use sp_v6. image image

rpautrat commented 3 years ago

Ok, so you should be using LISRD correctly. But yes, LISRD is not meant to be always better than SuperPoint, so it can underperform it for some images. Those are only a few images, so you should consider comparing them on bigger datasets.

The checkerboard is actually quite a difficult case for LISRD, because the repetitive patterns of the checkerboard can easily fool the meta descriptors. And if the meta-descriptors give a wrong matching, the local descriptors will not be of much use.

ChrisLLLLL commented 3 years ago

Thank you for your reply, i think i get it now. Could I ask you which net is better for checkerboard matching? i tried superpoint and it worked well, but it does not have rotational invariance.I am a little bit distressed about this.

rpautrat commented 3 years ago

I think SuperPoint is a very good option for checkerboard matching, as it is a corner detector and it was trained partially on checkerboards at the beginning. It should have rotational invariance at least up to 45 degrees, and in theory up to 90 degrees.

If you want to match checkerboards with higher rotation changes, what you can do is to match img1 with 4 different versions of img2: each image version is rotated by 90 degrees each time. Then you take the best of the 4 matches and take the angle that was initially used to rotate the image into account.

ChrisLLLLL commented 3 years ago

Thank you, but i tried the rotation, maybe Less than 90, the result is not as good as sift. Is there any way I can increase its matching rate? image

rpautrat commented 3 years ago

The result of SIFT is quite good as well, so why don't you use it for your application?

ChrisLLLLL commented 3 years ago

ok, thank you