cuda :: SURF_cuda比cv :: xfeatures2d :: SURF快吗?

时间:2017-02-16 09:45:23

标签: c++ opencv cuda computer-vision surf

我尝试使用CUDA支持构建opencv,以便将cuda::SURF_CUDAcv::xfeatures2d::SURFbut it's challenging进行比较。

但是,假设我想获得高性能,实时应用程序的SURF描述符。是的,我知道FAST或ORB是更合适的描述符,但它们是二进制文件,我需要欧几里德描述符。

无论如何,重点是我想知道这两个实现中哪一个更快只给出一个(查询)图像。我认为这很重要因为有人告诉我,只有在需要处理大量图像时才使用CUDA是合理的,因为与计算描述符的时间相比,在GPU内存中加载它们的时间变得很小,但是我不知道这是不是真的。

另一个原因是因为我发布这个是因为我只有一个NVIDIA GT755m,它不是高级GPU,所以我的结果可能不是很好。另一方面,我试图改进cv::xfeatures2d::SURF的并行部分(并在具有64个核心的Xeon Phi上进行测试)。

1 个答案:

答案 0 :(得分:1)

  

"与计算描述符和#34;相比,将它们加载到GPU内存中的时间变得很短。 - OP

是的,你是对的。有关为什么CUDA内核在第一次运行时似乎速度慢的原因,请参阅herehere

对于您的应用程序,它将完全取决于您运行代码的CPU和GPU以及CPU和GPU代码的编写程度。就像@NAmorim所说的那样,它取决于你的代码创造了多少开销以及它能够利用多少并行性。

请注意,它还可能取决于您处理的功能数量,因为这会影响CPU / GPU计算时间以及大部分GPU开销(考虑将描述符上传/下载到GPU)。