I want to use the SIFT algorithm for my scientific research (in EU, concretely SP), but it may end in a commercial software. I've searched the internet and what I found is that the patent is only in US and that in EU there is no "software development" patents.

Can I use SIFT algorithm without any fear? For sure, without selling to US.

The patent: US6711293


The INPADOC database of patent family members lists this patent as having no family members other than its own publication and its provisional application. iNPADOC does not cover all countries but it does cover Europe. Therefore there is not a related, corresponding patent in Europe. Another way to check this is to do a search at the EPO under the inventor's name. I have not done that.

  • Uau... I did't get it completely. That means that I cannot use it for Europe, doesn't it? – Ander Biguri Feb 22 '13 at 22:18
  • 1
    No -- I meant that if there was a corresponding European version of this US patent it would have shown up but it didn't ! – George White Feb 22 '13 at 23:27
  • An important corollary of @GeorgeWhite's answer is that US patents having corresponding EPO patents indicates that there are so-called "software" patents in EU too. It's a common misunderstanding that they don't exist in the EU. – kinkfisher Feb 28 '13 at 2:18
  • 1
    @kinkfisher - not sure if I agree completely with this logic but loved to see my name near the word "corollary". In the mid 80's I co-founded Corollary, Inc. a pioneer in multiprocessing technology! – George White Feb 28 '13 at 4:44
  • 1
    @AnderBiguri The actual phrasing used by the EPO guidelines is that patents cannot claim software "as such". Many misinterpret this to mean all software, but any invention that uses software or an algorithm to achieve, say, a "technical effect" (again, their words, and with very broad scope) is valid. This may be as simple as executing the algorithm on a computer, so the difference between "software", the algorithms it implements, and the machine running it is a rather philosophical issue that is somewhat unresolved in the context of patent law. – kinkfisher Feb 28 '13 at 17:56

Another option is avoiding the patents by using an alternative algorithm. I was going to suggest SURF as an alternative, but turns out it's patented as well! (Hmmm, BRB, have to go change some of my code... ;-))

An alternative that is ostensibly patent-free is BRISK, according to the last answer at this link: https://dsp.stackexchange.com/questions/1288/what-are-some-free-alternatives-to-sift-surf-that-can-be-used-in-commercial-app

Kinda off-topic for this forum, but another benefit of using alternative algorithms are that many of them were developed later, incorporating various advances, and hence are often better than SIFT and SURF in various ways.

  • But the robustness of SIFT is difficult to improve! Even if other are computationally less expensive and there are ways or eliminating mismatched features still SIFT is the most robust one, and I highly prefer robustness than speed in my program (it is a measurement program, so it needs high precision and robustness). – Ander Biguri Feb 28 '13 at 7:55
  • 1
    I experimented mostly with SIFT and SURF (after starting with normalized cross-correlation) for my application, which involved somewhat big, good resolution images, and had soft real-time constraints. I tried SURF after finding SIFT to be a too slow. It's been a while, but I recall SURF being much faster than SIFT, but not much less robust, at least for my use case. Researching it some more, FAST seems like a good option: stackoverflow.com/questions/11172408/… – kinkfisher Feb 28 '13 at 18:13
  • 1
    Still my application is very tricky, as there are not shapes, but random speckle patterns (a random cheetah skin) so any really small improvement in robustness is highly noted. SURF only uses 64 features while SIFT uses 128, actually SURF is "Speed up" because of that (among other things I think). For the 99% of the cases SURF is better than SIFT because the improvement in the robustness is not different for object tracking, but in my case (finding a piece of texture in a big one) the difference is evident (empirically tested). – Ander Biguri Mar 1 '13 at 8:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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