是否有任何探测器在GPU上实现并且是缩放/旋转不变的?

时间:2015-02-02 19:27:56

标签: opencv computer-vision feature-detection feature-extraction orb

正如OpenCV 2.4.9.0中所知,这些特征检测器是SIFT, SURF, BRISK, FREAK, STAR, FAST, ORB

所有这些都在CPU上实现,但在GPU上只有FASTORBhttp://docs.opencv.org/genindex.html

众所周知,有些是缩放/旋转不变的,但有些不是:Are there any fast alternatives to SURF and SIFT for scale-invariant feature extraction?

这些是规模不变和旋转不变的:

  • SIFT
  • SURF
  • BRISK
  • FREAK
  • STAR

但这些不是规模不变的,也不是旋转不变的:

  • FAST
  • ORB

是否有任何探测器在GPU上实现并且是缩放/旋转不变的?

或者将在GPU或OpenCL上的OpenCV 3.0中添加?

2 个答案:

答案 0 :(得分:8)

实际上,SURF是OpenCV中唯一支持GPU的缩放/旋转不变特征检测器。

在OpenCV 3.0 FASTORB已获得OCL支持,此外,这两个(FASTORB)已获得CUDA支持。

在您的问题的评论中已经提到了SURF的OCL / CUDA支持,但这只是对OpenCV的贡献,这就是OpenCV的开发人员对opencv_contrib的看法:

  

新模块通常没有稳定的API,但事实并非如此   经过全面测试。因此,他们不应该作为官员的一部分被释放   OpenCV发行版,因为库保持二进制兼容性,   并试图提供良好的性能和稳定性。

根据我以前的经验,OpenCV对SURF功能的实现要弱于OpenSURF。尝试它或者找一些其他开源实现是合理的。

P.S .: 据我所知,仍然没有KAZE/AKAZE的GPU加速版本。

答案 1 :(得分:3)

我最近使用CUDA与几位同事实施了AKAZE,如果您熟悉原始库,那么使用它应该没问题,因为我们尊重API。你可以在这里找到当前版本:

https://github.com/nbergst/akaze