Take the 2-minute tour ×
Signal Processing Stack Exchange is a question and answer site for practitioners of the art and science of signal, image and video processing. It's 100% free, no registration required.

As far as I understand, both SURF and SIFT are patent protected.
Are there any alternative methods that can be used in a commercial application freely?

For more info on the patent check out: http://opencv-users.1802565.n2.nabble.com/SURF-protected-by-patent-td3458734.html

share|improve this question
Remember they are only patented in countries that allow software patents - which doesn't (yet) include the Eu –  Martin Beckett Mar 13 '12 at 15:53
@MartinBeckett, does that cover development, deployment, or both? –  Andrey Mar 13 '12 at 16:59
that's the tricky thing about software patents. A patent stops manufacture or sale in a country but not research or development. Now what is software development? –  Martin Beckett Mar 13 '12 at 17:16
What exactly is patented in SIFT? SIFT has three stages: (i) Construction of scale space, (ii) Keypoint Detector and (iii) Descriptor generator. My feeling is that only the Descriptor Generator is patented. Am I correct? Thanks –  user12031 Dec 10 '14 at 15:42
This is not an answer to the question asked, and as such belongs in the comments rather than the answers. –  ThP Dec 10 '14 at 15:49

4 Answers 4

up vote 35 down vote accepted

Both SIFT and SURF authors require license fees for usage of their original algorithms.

I have done some research about the situation and there are the possible alternatives:

Keypoint detector:

  • Harris corner detector
  • Harris-Laplace - scale-invariant version of Harris detector (an affine invariant version also exists, presented by Mikolajczyk and Schmidt, and I believe is also patent free).
  • Multi-Scale Oriented Patches (MOPs) - athough it is patented, the detector is basically the multi-scale Harris, so there would be no problems with that
  • LoG filter - since the patented SIFT uses DoG (Difference of Gaussian) approximation of LoG (Laplacian of Gaussian) to localize interest points in scale, LoG alone can be used in modified, patent-free algorithm, tough the implementation could run a little slower
  • FAST
  • BRISK (includes a descriptor)
  • ORB (includes a descriptor)

Keypoint descriptor:

  • Normalized gradient - simple, working solution
  • Wavelet filtered image patch - similar to gradient, the details are given in MOPs paper, but can be implemented differently to avoid the patent issue (e.g. using different wavelet basis or different indexing scheme)
  • Histogram of oriented gradients
  • GLOH
  • LESH
  • ORB

Note that if you assign orientation to the interest point and rotate the image patch accordingly, you get rotational invariance for free. Even Harris corners are rotationally invariant and the descriptor may be made so as well.

Some more complete solution is done in Hugin, because they also struggled to have a patent-free interest point detector.

share|improve this answer
Thanks for your answer. Do they want royalty? –  Andrey Mar 6 '12 at 12:55
Yes, both of them want royalty fee. The price needs to be negotiated, but it goes around 20.000 USD/year and the royalty fee is about 5%. The MOPs is now patented by Microsoft (I've contacted Richard Szeliski for more info regarding the patent). –  Libor Mar 7 '12 at 15:04
Patents are public in principle, so if you want to know more about it, look it up in patent databases (e.g. European Database. –  Geerten Mar 9 '12 at 12:33
Are any of those keypoint descriptors scale-invariant? –  Diego Apr 14 '12 at 22:25
Harris-Laplace is scale-invariant. Or you can make other detectors scale-invariant by filtering out scale space maxima and computing a characteristic scale for each detected point. –  Libor Jan 31 '13 at 22:05

There is a relatively new method, you might want to look into: BRISK, Binary Robust Invariant Scalable Keypoints:

In this paper we propose BRISK, a novel method for keypoint detection, description and matching. A comprehensive evaluation on benchmark datasets reveals BRISK’s adaptive, high quality performance as in state-of-the-art algorithms, albeit at a dramatically lower computational cost (an order of magnitude faster than SURF in cases). The key to speed lies in the application of a novel scale-space FAST-based detector in combination with the assembly of a bit-string descriptor from intensity comparisons retrieved by dedicated sampling of each keypoint neighborhood.

It's patent-free and free to use (as was told by the author of the algorithm).

share|improve this answer

Don't trust anyone here, talk to a lawyer. The Legal world is subtly different from ours, if I may say. Depending on what you exactly want to do (and where, etc.), there may be a solution where you could use SURF or SIFT. I have been surprised in the past how seemingly strong licenses can be overcome.

share|improve this answer

I would rather look into KAZE / AKAZE, which perform equally good with significant speed-up. The deformation cases are also tolerated. OpenCV has recently obtained an implementation through GSoC 2014. You can find it here.

share|improve this answer
Thanks. KAZE looks promising - it has better overall performance than SIFT/SURF. Although the nonlinear scale scale computation may be hard to implement, it may worth the effort. –  Libor Jul 25 at 1:31

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.