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
- BRISK
- ORB
- FREAK
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.