Почему SIFT недоступен в Matlab?

SIFT — важный и полезный алгоритм компьютерного зрения, но похоже, что он не является частью Matlab или какого-либо из его наборов инструментов.

Почему ? Предлагает ли Matlab что-то лучшее или эквивалентное?


person jhegedus    schedule 04.03.2015    source источник


Ответы (1)


MATLAB имеет SURF, доступный как часть Computer Vision Toolbox, но не SIFT: http://www.mathworks.com/help/vision/ref/surfpoints-class.html. Тем не менее, оба алгоритма почти одинаковы с некоторыми незначительными (но важными) отличиями, такими как использование интегральных изображений и быстрого детектора Гессе. Я не буду вдаваться в подробности этих различий, но вы, безусловно, можете прочитать о работе здесь: http://www.vision.ee.ethz.ch/~surf/eccv06.pdf. Что касается причины, по которой MathWorks решила использовать SURF вместо SIFT... на самом деле это может быть любая причина. Насколько я знаю, нет официальной причины, по которой один был выбран вместо другого, поскольку они оба подлежат патентованию.

Однако, если вы хотите использовать SIFT в MATLAB, у меня есть одно предложение: использовать набор инструментов VLFeat, где C и реализация MATLAB структуры ключевых точек, обнаружения и сопоставления стала доступной и имеет открытый исходный код. В нем также реализовано множество других хороших алгоритмов компьютерного зрения, но VLFeat — одна из известных мне библиотек, которая может вычислять SIFT так же точно, как и оригинальный запатентованный алгоритм.

Если вы полностью настроены на использование SIFT, проверьте VLFeat! В частности, ознакомьтесь с официальным руководством VLFeat по SIFT с использованием оболочек MATLAB: http://www.vlfeat.org/overview/sift.html

person rayryeng    schedule 04.03.2015
comment
Спасибо большое! Отличный ответ! - person jhegedus; 04.03.2015
comment
SURF был реализован в OpenCV до он был запатентован. Патент был опубликован 25 февраля 2009 г. SURF impl выполняется в OpenCV до этого. - person Josiah Yoder; 20.04.2018