Ask Your Question

FAST Response is 0

asked 2015-10-14 18:37:25 -0500

Throwaway99 gravatar image

updated 2015-10-14 19:22:48 -0500

I am using 2.4.10 and the FAST keypoint response is always 0. Is this fixed in later releases?


If one were attempting to economize resources and improve matching, it would be prudent to independently match the positive and negative points be they corners or blobs such that running 2 detectors, say FAST and CENSURE would require 4 sets of points to be matched.

That said, is there a way to query the keypoint to determine if it is a positive response or a negative response? It seems to me that the response is always positive, which is unfortunate.

If I am right, that is a serious oversight of the library.

edit retag flag offensive close merge delete



I don't have the FAST keypoint detection method completly in my mind but to me:

  • FAST keypoint detection is based on segment test, thus there cannot be a response value contrary to Harris keypoint detection for example
  • but you could calculate a response value yourself (if my previous point is correct) using the method of your choice.

Could you elaborate more about positive and negative points ? For me the operations to match keypoints are:

  • detect keypoints on two images
  • extract the descriptor for each detected keypoints with a chosen method
  • match the keypoints using distance across the descriptors.

Anyway, you could submit an issue on the OpenCV github with a minimal example code that reproduce the problem if you think it is appropriate.

Eduardo gravatar imageEduardo ( 2015-10-15 04:45:35 -0500 )edit

To be a FAST corner, 9 contiguous of 16 must be either all be less than the central pixel by some threshold or greater than the central pixel by some threshold. The amount by which the smallest pixel difference beats the threshold could be considered the response. Those FAST corners where the central pixel is less than the 9 contiguous pixels could be considered a negative corner and where the central pixel is greater than the 9 contiguous pixels we could call that corner a positive corner. In the matching stage, it would save computation to only match positive corners to positive corners and negative corners to negative corners. The exact same statements can be made for blob detectors like STAR.

Throwaway99 gravatar imageThrowaway99 ( 2015-10-15 06:34:17 -0500 )edit

Calculating a value myself is of course possible, but it would be much more efficient to build that into the detection step. The fact that FAST can perform non-maximal suppression means that it is basing its suppression decision on a response value (yes, I still need to inspect the implementation). See this paper for a mention of what I am getting at.

Throwaway99 gravatar imageThrowaway99 ( 2015-10-15 06:47:07 -0500 )edit

I understand more the situation.

Just my thoughts. I can only strongly encourage you to implement a first (maybe rough) version of the functionnality for your works and propose it to the community as a contribution.

Efficiency and proper code implementation will I think follow with the interest the OpenCV community will found on the contribution work.

Eduardo gravatar imageEduardo ( 2015-10-15 08:59:12 -0500 )edit

2 answers

Sort by ยป oldest newest most voted

answered 2015-10-17 08:09:42 -0500

Throwaway99 gravatar image

This is my mistake. I now am seeing non-zero FAST responses as I expected, so I am not sure what I was looking at earlier. One can see in the code that the absolute value of the score ( the sum of the absolute difference between the pixels in the contiguous arc and the center pixel ) is in the Keypoint pushed onto the vector of Keypoints.

My other point still stands, as I think it would be worth knowing whether the keypoint is a positive or negative keypoint. Perhaps in practice brute-force matchers break early on such a discrepancy, but it seems likely that it would save computation for detectors to return two vectors of points.

edit flag offensive delete link more

answered 2017-09-07 22:38:54 -0500

cynosure4sure gravatar image

So I have been having the FAST response was zero. I figured out if you set non maxima suppression to false the response if 0 but if you set non maxima suppression to true the response will not be zero.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2015-10-14 18:37:25 -0500

Seen: 497 times

Last updated: Oct 17 '15