正如OpenCV 2.4.9.0中所知,这些特征检测器是SIFT, SURF, BRISK, FREAK, STAR, FAST, ORB
。
所有这些都在CPU上实现,但在GPU上只有FAST
和ORB
。 http://docs.opencv.org/genindex.html
众所周知,有些是缩放/旋转不变的,但有些不是:Are there any fast alternatives to SURF and SIFT for scale-invariant feature extraction?
这些是规模不变和旋转不变的:
但这些不是规模不变的,也不是旋转不变的:
是否有任何探测器在GPU上实现并且是缩放/旋转不变的?
或者将在GPU或OpenCL上的OpenCV 3.0中添加?
答案 0 :(得分:8)
实际上,SURF是OpenCV中唯一支持GPU的缩放/旋转不变特征检测器。
在OpenCV 3.0 FAST和ORB已获得OCL支持,此外,这两个(FAST和ORB)已获得CUDA支持。
在您的问题的评论中已经提到了SURF的OCL / CUDA支持,但这只是对OpenCV的贡献,这就是OpenCV的开发人员对opencv_contrib的看法:
新模块通常没有稳定的API,但事实并非如此 经过全面测试。因此,他们不应该作为官员的一部分被释放 OpenCV发行版,因为库保持二进制兼容性, 并试图提供良好的性能和稳定性。
根据我以前的经验,OpenCV对SURF功能的实现要弱于OpenSURF。尝试它或者找一些其他开源实现是合理的。
P.S .: 据我所知,仍然没有KAZE/AKAZE的GPU加速版本。
答案 1 :(得分:3)
我最近使用CUDA与几位同事实施了AKAZE,如果您熟悉原始库,那么使用它应该没问题,因为我们尊重API。你可以在这里找到当前版本: