sift and surf missing kpt response (Bug #2210)
Description
Sift and Surf feature detectors don't assign response to keypoint class.
So nfeatures limits param in Sift doesn't work.
Associated revisions
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
- File sift_test.cpp added
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 Alexander Mordvintsev over 12 years ago
+1
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 Kirill Kornyakov about 12 years ago
- Target version set to 2.4.4