sift and surf missing kpt response (Bug #2210)


Added by antonella cascitelli over 12 years ago. Updated about 12 years ago.


Status:Done Start date:2012-07-27
Priority:Normal Due date:
Assignee:Vadim Pisarevsky % Done:

0%

Category:nonfree
Target version:2.4.4
Affected version:2.4.3 Operating System:
Difficulty: HW Platform:
Pull request:

Description

Sift and Surf feature detectors don't assign response to keypoint class.
So nfeatures limits param in Sift doesn't work.


sift_test.cpp - SIFT test (657 Bytes) antonella cascitelli, 2012-07-31 07:27 pm


Associated revisions

Revision c69312ea
Added by Vadim Pisarevsky about 12 years ago

fixed #2580, #2210. some work on #2025.

modified SIFT to 1) double image before finding keypoints, 2) use floating-point internally instead of 16-bit integers, 3) set the keypoint response to the abs(interpolated_DoG_value). step 1) increases the number of detected keypoints significantly and together with 2) and 3) it improves some detection benchmarks. On the other hand, the stability of the small keypoints is lower, so the rotation and scale invariance tests now struggle a bit. In 2.5 need to make this feature optional and add some more intelligence to the algorithm.

added test that finds a planar object using SIFT.

History

Updated by Daniil Osokin over 12 years ago

Please, provide the code, where nfeatures param in Sift doesn't work.

Updated by antonella cascitelli over 12 years ago

You can verified with this code

Updated by Daniil Osokin over 12 years ago

In which version of OpenCV do you found it?

Updated by antonella cascitelli over 12 years ago

I am on master branch

Updated by Daniil Osokin over 12 years ago

Thank you for response, we will check it.

  • Priority changed from High to Normal

Updated by Andrey Kamaev over 12 years ago

  • Assignee set to Maria Dimashova

Updated by Jacek Komorowski over 12 years ago

Hi,

I'm using OpenCV version 2.4.2 and have similar issue with SIFT feature detector.

1. nFeatures parameter doesn't work. Number of features returned is not limited by nFeatures, it can be much higher (depending on the thresholds).

2. All returned keypoints has RESPONSE = 0 (so it's not possible to find features with the best response)

3. All returned keypoints have strange OCTAVE values (something like 11796736 or 5046528).
I think OCTAVE number in SIFT keypoint should be something like 1,2,3... not such big number.

I've used the following code:

cv::SiftFeatureDetector detector( 1000, 3, 0.06, 10.0 );
detector(image, mask, rawKeypoints, descriptors, false );

Updated by Vadim Pisarevsky over 12 years ago

  • Target version deleted ()
  • Assignee deleted (Maria Dimashova)

Updated by Kirill Kornyakov over 12 years ago

  • Target version set to Next Hackathon

Updated by Vadim Pisarevsky about 12 years ago

  • Affected version set to 2.4.3
  • Target version deleted (Next Hackathon)

Updated by Vadim Pisarevsky about 12 years ago

  • Assignee set to Vadim Pisarevsky

Updated by Andrey Kamaev about 12 years ago

Fix is pushed to 2.4

  • Status changed from Open to Done

Updated by Kirill Kornyakov about 12 years ago

  • Target version set to 2.4.4

Also available in: Atom PDF