Tag Archives: sift

Free SIFT / SURF alternatives

Scrapped from

I’ve tested the SIFT/SURF alternatives mentioned in a post by Gary last year and found them lacking.

FAST detector for keypoints – does not characterize keypoints (it’s fast, though)

Self-similarity features for keypoints (code by Rainer Lienhart) is IMHO patented by Shechtman & Irani as US patent (application), see e.g. (IMHO the US patent office allows to put in patents up to one year after publication)

Fast Keypoint Recognition using Random Ferns – similar speed and accuracy as SIFT/SURF, but needs far too much memory. I’ve measured 500M per object recognized even after optimizing the parameters in find_obj_ferns.cpp to reduce memory requirements. IMHO it does not make sense to train one fern classifier on multiple keypoints from the same object so this memory footprint would be incurred for each object to be recognized. E.g. to recognize 76 magazine pages like here (video done by myself), you’d need a whooping 34TB of main memory – not feasible.

Given that cvSURF works reasonably well on small devices (I made it to about 1 fps on a recent Android model), which have nowhere that much memory, I currently don’t see any _feasible_ alternatives to SIFT/SURF for large-scale object recognition in OpenCV. Any idea/pointers? What can I do to fix this?

Leave a comment

Posted by on July 20, 2010 in Computer Vision, OpenCV


Tags: , , ,

Re: SURF protected by patent!?

Wow, I knew SIFT is patented, but didn’t know SURF and Haar-Adaboost are also.

Again there is NO Free Lunch ……

Scrapped from :

Sadly, SURF and SIFT are both patented.
We had re-implemented from scratch both SURF and SIFT and we wanted to include both of these simply because so many people want to compare against them, but in personal communications, decided not to include SIFT.

SURF is one of two bad cases I know of that should not be used commercially (the other is the Cascade face detector). These were meant for research comparison, not for commercial use. The are both re-implemented from scratch. We also implemented SIFT but decided not to include it because of its wide spread commercial patented use.

However, help is soon at hand:

1. We believe that SIFT finally has adequate or superior competitors that are free and will be incorporated in the next release (some are already in the current SVN).  The next release is due “end of summer” (which might, um, slip to “September”).  These are
The FAST detector for KeyPoints and:

Planar object detector using fern-based patch classifier and V. Lepetit keypoint detector has been added.
M. Ozuysal, M. Calonder, V. Lepetit and P. Fua, Fast Keypoint Recognition using Random Ferns, accepted to IEEE Transactions on Pattern Analysis and Machine   Intelligence, 2009.
Integrated self-similarity features (code contributed by Rainer Leinhart)
1. Shechtman, E., Irani, M. Matching local self-similarities across images and videos. CVPR 2007
2. Eva Horster, Thomas Greif, Rainer Lienhart, Malcolm Slaney. Comparing Local Feature Descriptors in pLSA-Based Image Models. 30th Annual Symposium of the German Association for Pattern Recognition (DAGM) 2008, Munich, Germany, June 2008.
2. The cascade: We’ve re-written this again to just use a sequence of generic, tree based boosted classifiers which now can take any kind of feature.
We’ve implemented the older Haar features, but have also added newer Local Binary Patterns (LBP)
Ojala and M. Pietikainen. Multiresolution Gray-Scale and Rotation
Invariant Texture Classification with Local Binary Patterns, IEEE Trans
on Pattern Analysis and Machine Intelligence, Vol. 24. No.7, July, 2002.
This cascade is backwards compatible — it will read and convert older files and should perform the same on them, but you can retrain using the new features.
Does this get around the patent?  I don’t know.  But we now have a full machine learning library in OpenCV and the boosting techniques there should outperform the cascade but be slower.
However, we’re working on kernel based gentle boost that should not only out perform the cascade but be faster too in parallel implementation. This latestest code will not be in the summer release, look for it in January.

Leave a comment

Posted by on July 6, 2010 in Computer Vision, OpenCV


Tags: , ,