Doubts on computing keypoints
Hi Michal,
I have an input image:

When I compute keypoints according to article (own implementation) I receive:

Buy after computing keypoints according to your original version from GitHub I receive:

Could you please tell why these versions differ and which is better?
Here are bigger pictures.
Input:

Our implementation (with NMS turned off):

FASText implementation:

Now, you can see my doubts :)
Hi, Arthur, It is not clear how you obtained images, If you ran provided script python tools/segmentation.py ~/ft2.jpg you will get very different results. (it looks to me that image has been obtained only on 1 scale)
the differences however are mainly of that current implementation is also checking circle pattern corners - so if you will run the detector in full image pyramid, you will get on these provided examples much less keypoints (so generally better working point on ROC curve).
note that your imp. is firing a lot on strait lines.
but anyway - I can not claim that it is better :) - just depend on data and your requirements
Hi Michal, You've right. It is obtained on one scale. The first image is an input image, the second is obtained with our code based on your article, and the third is obtained with your code from GitHub. I assume that in our implementation we don't check circle pattern corners, that's why we have a lot of keypoints on straight lines. So, I have two questions:
- why in your implementation corners are not set as keypoints? Is it because of checking circle pattern corner?
- where (in code) is aforementioned circle pattern corner implemented?
Best regards Artur
Hi Artur, The keypoints are computed in FASTex.cpp
The rule for output bends (line 245): if( same == 2 && (countR + countAll) > 7 && (countR + countAll) < 10 && countSame < 4 && countSamePrev < 4)
so for the provided example (countR + countAll) < 10 does not hold for corners. If desired (countR + countAll) <= 10 will do.
about the corner - sorry, i was wrong - the corner crossing is commented out ( //int x = getValueCorner12(ptr, pixel, corners, pixelIndex[l], k, maxdist );
All the best, Michal