Ask Your Question
0

BFMatcher implemented differently on GPU?

asked Apr 4 '13

mada gravatar image

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!

Preview: (hide)

Comments

1

The results may differ due to floating point arithmetics.

What you are saying, it is possible that it is not my fault?

mada gravatar imagemada (Apr 8 '13)edit

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?

mada gravatar imagemada (Apr 12 '13)edit

1 answer

Sort by » oldest newest most voted
1

answered Apr 8 '13

Vladislav Vinogradov gravatar image

It is not your fault. As I say results may differ due to floating point arithmetic. Also SURF GPU descriptors differs from CPU.

Preview: (hide)

Question Tools

Stats

Asked: Apr 4 '13

Seen: 852 times

Last updated: Apr 04 '13