Ask Your Question

Sorting keypoints and descriptors on GPU

asked 2013-04-16 05:18:17 -0600

mada gravatar image


When calculating keypoints/descriptors with SURF on GPU, in the each run (with same parameters and image) they are stored in a different order, but with the same content. Because of that, some algorithms that I am using produce slightly different results each time.

What would be the easiest way to sort them after calculation? Downloading them and sorting seems hard, since descriptors on CPU contain 64/128x more elements. Is it possible to detect keypoints, download them to CPU, sort them and put them back on GPU to calculate descriptors? I know it is possible to do the calculations separately on CPU version. Also, would it produce same results each time?


edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2013-04-16 05:37:09 -0600

Vladislav Vinogradov gravatar image

Yes, SURF_GPU support separate keypoint detection and descriptor calculation:

SURF_GPU surf;
vector<KeyPoint> keypoints;
surf(image, mask, keypoints);
GpuMat descriptors;
surf(image, mask, keypoints, descriptors, true); // true means use provided keypoints
edit flag offensive delete link more

Question Tools

1 follower


Asked: 2013-04-16 05:18:17 -0600

Seen: 919 times

Last updated: Apr 16 '13