如OpenCV www.example.com中所知2.4.9.0,这些特征检测器:SIFT, SURF, BRISK, FREAK, STAR, FAST, ORB
.
- http://docs.opencv.org/modules/features2d/doc/feature_detection_and_description.html
- http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html
所有这些都在CPU上实现,但只有FAST
和ORB
在GPU上实现。
众所周知,有些是缩放/旋转不变的,但有些不是:Are there any fast alternatives to SURF and SIFT for scale-invariant feature extraction?
它们是缩放不变和旋转不变:
- SIFT
- SURF
- BRISK
- FREAK
- 星星
但它们不是尺度不变的,也不是旋转不变的:
- 快速
- ORB
是否有在GPU上实现的尺度/旋转不变的检测器?
或者将在GPU或OpenCL上的OpenCV 3.0中添加?
2条答案
按热度按时间rbl8hiat1#
实际上,SURF是OpenCV中唯一支持GPU的缩放/旋转不变特征检测器。
在OpenCV 3.0中,FAST和ORB已经获得了OCL支持,而且这两个(FAST和ORB)已经获得了CUDA支持。
在您的问题的评论中已经提到了SURF的OCL/CUDA支持,但它只是对OpenCV的贡献,这是OpenCV的开发人员对opencv_contrib的看法:
新的模块通常没有稳定的API,也没有经过很好的测试。因此,它们不应该作为官方OpenCV发行版的一部分发布,因为该库保持了二进制兼容性,并试图提供良好的性能和稳定性。
根据我以前的经验,OpenCV的SURF功能实现比OpenSURF弱得多。
附注:据我所知,KAZE/AKAZE还没有GPU加速版本。
1l5u6lss2#
我最近和几个同事使用CUDA实现了AKAZE,如果你熟悉原始库,你应该没有问题,因为我们尊重API。你可以在这里找到最新版本:
https://github.com/nbergst/akaze