Search code examples
opencvorb

Retaining keypoints in GPU memory for efficient pipelining


Is it possible using the CUDA API for openCV to retain keypoints and descriptors returned from a feature detector and descriptor (orb->detectAndCompute) in GPU memory so that we can pass the keypoints and descriptors straight to a knnMatch, without having to download and re-upload the keypoints and descriptors? It will avoid inefficient memory transfers in a pipeline


Solution

  • Utilizing the asynchronous set of functions from the CUDA API, this exact result can be achieved. The following repository does just in it's implementation of feature extraction, description and matching to a database.