SURF_GPU broken (Bug #1569)
Description
Running SURF_GPU on the same image every time returns different descriptors. The descriptors are unusable - cannot find any image using descriptors produced by GPU version. Replacing SURF_GPU with CPU version of SURF solves all problems - descriptors are the same for the same image every time, search quality is very good.
Associated revisions
Merge pull request #1569 from ilya-lavrenov:ocl_hough_circles
History
Updated by Anatoly Baksheev about 13 years ago
Hi, thanks for the report. Could you explain your configuration? Cuda version, gpu, os etc. Just it works without any problem on C2070 win32.
Also take into consideration that SURF_GPU reorders descriptors and keypoints each time (because of many threads). So after computing descriptors you should download keypoints also. Could you try surf sample from opencv?
Updated by okhoma - about 13 years ago
CUDA 4.0, GTX 480, Windows 7 64bit
At first I thought that the descriptors are just reordered. But the behavior between GPU and CPU seems to be different. When descriptors are computed twice for the same image and then we compute the sum of best pairwise matches of each query image descriptor against reference image descriptors (remember, these are the same images!) we get zero using CPU and non-zero using GPU. This means the two sets of descriptors are different when computed on GPU.
Updated by Vladislav Vinogradov about 13 years ago
Thanks for the report, bug was fixed.
Updated by okhoma - about 13 years ago
Thank you! Looks fine now.
- Status changed from Open to Done
- (deleted custom field) set to fixed
Updated by Andrey Kamaev about 13 years ago
- Target version set to 2.4.0