Question about FAST Detector
EDIT: This question has been answered. I have tried to close this, but my lack of reputation does not allow it. I welcome anyone with the permission to close this to do so.
Hi,
I wanted to examine which points in the image were picked up by using the default FAST Detector. I currently use EmguCV to do so, though I think my settings are the same as in this guide (I am calling the default constructor, tried different threshold values and non-max suppression on). I went through the wikipedia article and the guide I pointed to earlier, and tested it on one part of my image. This was the result .
From my understanding, FAST determines whether or not there is a corner based on the following circle of grayscale values (taken from the image, but for clarity):
It is a corner when at least N contiguous pixels are either threshold T brighter or darker than the center point. In this case I think N=12 (as default), and (at first) picked T = 10. This means that this segment of the picture should fail to mark as a corner, since the middle-top and left-middle pixels both have a value of 219, but the middle-bottom and right-middle pixel have 41.
Varying the threshold T however, I did find that this spot does not get detected when T >= 85. This is probably because the top-right and bottom-left pixels have an intensity of 161 (76+85). Could anyone help me explain this behavior? Why does it find the spot at T < 85? Is the default N < 12? Or am I missing some step here?
Thanks in advance.
There is the Fast-n algorithm, as the author (Edward Rosten http://fastcorner.wordpress.com/2010/09/09/fast-faq/) mentions. I have seen Fast-9 quite often, and I wouldn't be surprised if the OpenCV default implementation is FAST-9.
Thank you.