ocl SURF rotation failure (possible keypoint orientation bug) (Bug #2787)
Description
cv::ocl::SURF_OCL is not rotation invariant as it should be (despite ensuring that "upright" = false). cv::SURF works properly and is the example to test against.
Test setup on original image and rotated version of same image:
run SURF_OCL, brute force matcher, RANSAC, compute homography, project points and calculate pixel error.
The result is that cv::ocl::SURF_OCL starts failing (>2 pixel error) around 30+ degrees of rotation. cv::SURF works flawlessly for 0-180 degrees of rotation.
It seems that the ocl version of the algorithm is not computing an orientation for the keypoints, or it is computing the orientation incorrectly.
History
Updated by Kirill Kornyakov about 12 years ago
Jon, you observation is helpful, but a textual description may be not enough. So, if you could attach a repro sample, it might help a lot. I understand that the example is trivial, but it may save precisous hour or two, and help to avoid confusion... And, finally, you can try to debug the issue and provide a fix for the OCL module, since it is open-source ;-)
Updated by Jon Waltman about 12 years ago
Kirill, thanks for the response. I will work on a code sample and post it when it is ready.
Updated by Andrey Kamaev about 12 years ago
Fix is pushed to 2.4
- Status changed from Open to Done
- Target version changed from 3.0 to 2.4.4