GPU BFMatcher trainees * queries memory consumption

asked 2013-12-18 04:50:09 -0500

Hi guys,
I have a set of 70 images that contain around 150,000 Sift-Descriptors. The images have to be compared pairwise. Each has to be compared with every other to find the 5 best matches. When calling knnMatch() I get the error "Gpu API call (out of memory) in mallocPitch".

I tried for a smaller subset of descriptors (10,000) and wondered about the huge memory consumption (~ 800MB on Device). That's why I took a look into the implementation. Inside the gpu module in the file brute_force_matcher.cpp at line 488 (opencv version 2.4.7) I found a hint that in the GPU-Matrix allDist all distances are stored. After this point in the code I wasn't able to find out where I can find the matchL2_gpu<float> function.

My questions are:
Will allDist be allocated on GPU or is this only used for interaction?
If so, will this behavior changed in future versions?

edit retag flag offensive close merge delete