Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Are there any detectors which implemented on GPU and are scale/rotate-invariant?

As known in OpenCV 2.4.9.0 are these feature-detectors: 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

All of these have implementation on CPU, but only FAST and ORB on GPU. http://docs.opencv.org/genindex.html

And as known, some are scale/rotate-invariant, but some aren't: Are there any fast alternatives to SURF and SIFT for scale-invariant feature extraction?

These are scale-invariant and rotate-invariant:

  • SIFT
  • SURF
  • BRISK
  • FREAK
  • STAR

But these are not scale-invariant and not rotate-invariant:

  • FAST
  • ORB

Are there any detectors which implemented on GPU and are scale/rotate-invariant?

Or will be added in OpenCV 3.0 on GPU or OpenCL?

like image 370
Alex Avatar asked Feb 02 '15 19:02

Alex


2 Answers

Actually, SURF is the only scale/rotate-invariant feature detector with GPU support in OpenCV.

In OpenCV 3.0 FAST and ORBhave got OCL support and moreover, these two (FAST and ORB) have already got CUDA support.

The OCL/CUDA support of SURF has been already mentioned in the comments of your question, but it is only a contribution to OpenCV and this is how OpenCV's developers about opencv_contrib:

New modules quite often do not have stable API, and they are not well-tested. Thus, they shouldn't be released as a part of official OpenCV distribution, since the library maintains binary compatibility, and tries to provide decent performance and stability.

Based on my previous experiences OpenCV’s implementation of SURF features were much weaker than OpenSURF. It would be reasonable to try it, or find some other open source implementations.

p.s.: to my knowledge still there is no GPU accelerated version of KAZE/AKAZE.

like image 142
Kornel Avatar answered Nov 19 '22 07:11

Kornel


I recently implemented AKAZE using CUDA with a couple of colleagues, if you are familiar with the original library you should have no problem using it since we respected the API. You can find the current version here:

https://github.com/nbergst/akaze

like image 30
CoffeeRobot Avatar answered Nov 19 '22 07:11

CoffeeRobot