OpenCV, как всегда, хороший выбор.
Тем не менее, VLFeat также очень хорош.Он включает в себя множество популярных детекторов функций (включая SIFT, MSER, Harris и т. Д.), А также алгоритмы кластеризации, такие как (kd-trees и quickshift).Вы можете очень быстро собрать воедино что-то вроде классификатора мешков слов.
Хотя SIFT, безусловно, является солидным решением общего назначения, на самом деле это конвейер, состоящий из детектора признаков (какие точки интересны на изображении), дескриптор функции (для каждой интересующей точки на изображении, что является хорошим представлением) и средство сравнения функций (с учетом дескриптора и базы данных дескрипторов, как определить, что является лучшим соответствием).
В зависимости от вашего приложения вы можете разбить этот конвейер и поменять местами различные компоненты.Реализация VLFeat SIFT очень модульная и позволяет вам экспериментировать с этим легко.