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

2

8

As known in OpenCV 2.4.9.0 are these feature-detectors: SIFT, SURF, BRISK, FREAK, STAR, FAST, ORB.

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?

Dylan answered 2/2, 2015 at 19:27 Comment(4)
Have you seen it (it already has OCL version)? docs.opencv.org/modules/nonfree/doc/…Hohenzollern
@Hohenzollern Thank U! I have not seen this, missed. It is a pity that there are no FREAK/BRISK.Dylan
may be you can try AKAZE too. Also in 3.0, you needn't use ocl version of surf. It is in my default - see this link github.com/Itseez/opencv_contrib/blob/master/modules/…. Use UMat though.Seaware
@Kiran Thank U. Yes, it seems to be the true - in OpenCV 3.0 SURF has 3 versions: CPU, CUDA and OCL(which trys to be used by default if can). And AKAZE seems to be more efficient than ORB: docs.opencv.org/trunk/doc/tutorials/features2d/akaze_tracking/… But I didn't find anything about implementation AKAZE on GPU(OCL/CUDA).Dylan
H
8

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.

Hohenzollern answered 4/2, 2015 at 9:51 Comment(0)
F
4

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

Forearm answered 22/8, 2016 at 23:47 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.