BFMatcher implemented differently on GPU?
Hi,
I am using SURF and BFMatcher in my application, for which I have CPU and GPU code. I did additional calculations with the matches (calculated by BFMatcher) on CPU and GPU versions in the same way (at least I think I did), to decide which matches to keep. Depending on which version I am using, I noticed that I get slightly different results in the number of matches kept in the end.
SURF and BFMatcher have the same arguments in both versions. For additional calculations I implemented my own functions/kernels.
Is it possible that SURF or BFMatcher are implmented a bit different on CPU and GPU versions, which makes my results different? Or I did some mistake while transfering the CPU code to GPU (which I can´t find)?
Thanks!
The results may differ due to floating point arithmetics.
What you are saying, it is possible that it is not my fault?
Another similar question. If I run SURF detector(on GPU) with same parameters and same image 2x, the keypoints I get are not exactly identical. Mostly they are, but there are a few keypoints that are found in 1st test and haven´t been found in 2nd one and vice versa(number of keypoints found is the same in both tests) Why is it happening?