Scale invariant template matching For my application I am looking for a free, fast and scale-invariant template matching algorithm. The templates can only be scaled within the scene (no skew or rotation) and the scale is unknown. Scale can go up from 400% to 25%. All pictures are noise-free.

I have considered the following:


SIFT: Highest accuracy so far. However it is licensed and pretty slow (3sec)
ORB: Performance still not fast enough (1.5sec). Accuracy also poor on scaling.


What is the best algorithm in terms of accuracy for this particular problem? And which is the quickest? Are there any algorithms specially designed for this particular problem?
To increase the speed, I think the dimensionality of the feature descriptors should be reduced. SIFT feature descriptor is of 128 dimensions. 

So you can try PCA-SIFT which reduces the descriptor number to 20. It uses Principal Component Analysis to the SIFT descriptors.

You can also try using Speeded Up Robust Features (SURF). The feature descriptors obtained from SURF are invariant to rotation and scale, and it can reduce the dimensions of feature descriptors significantly. it enables faster feature detection as well as template matching. Also, MATLAB has a specific command for SURF i.e. detectSURFFeatures, so if you are using MATLAB for your job you are in luck. I think OpenCV also has the SURF feature command so that you can use it on python too. I have used the SURF features which I think is pretty fast.