Вопрос по – Существуют ли быстрые альтернативы SURF и SIFT для извлечения инвариантных по масштабу объектов?

30

SURF запатентован, как и SIFT. ORB и BRIEF не запатентованы, но их функции не зависят от масштаба, что серьезно ограничивает их полезность в сложных сценариях.

Существуют ли какие-либо средства извлечения признаков, которые могут извлекать инвариантные по масштабу функции так же быстро, как SURF, и не так строго запатентованы, как SURF и SIFT?

Спросил наdsp также. Maurits

Ваш Ответ

7   ответов
3

Вы можете попробовать KAZE, он должен быть более быстрым и точным (видео кажутся модными, но я сам пока не пробовал). Также доступна ускоренная версия.

Пабло Ф. Алькантарилья, Адриен Бартоли и Эндрю Дж. Дэвисон, & quot;KAZE Особенности& quot ;, На Европейской конференции по компьютерному зрению (ECCV). Fiorenze *, Италия. Октябрь 2012

Пабло Ф. Алкантарилья, Джес Нуэво и Адриен Бартоли, & quot;Быстрая явная диффузия для ускоренных объектов в нелинейных масштабных пространствах& quot ;, в Британской конференции машинного зрения (BMVC). Бристоль, Великобритания. Сентябрь 2013

Исходные коды, видео и многое другое можно найти насайт автора.

* Firenze

Я сравнил AKAZE, SURF и SIFT в одном приложении, и я могу подтвердить, что в моих тестах это, по крайней мере, так же хорошо, и дескрипторы намного быстрее сравнивать, чем любой из них (они двоичные и все). На него также не распространяются патенты, поэтому я рекомендую AKAZE в качестве первого выбора.
8

Я в конечном итоге с помощьююркий, который является детектором функций с производительностью, сравнимой с SURF, но по лицензии BSD. Кроме того, у него есть очень хорошая реализация C ++ с открытым исходным кодом, которая легко подключается к платформе OpenCV FeatureDetector, так что она похожа на две строки, выбирающие использование Brisk поверх SURF в вашем коде.

Отлично. Я видел бумагу, но не нашел реализацию. Спасибо за ответ.
30

ИГРА интересно. Автор утверждает, что имеет лучшие результаты, чем BRISK и ORB. Я должен также добавить, что ORBis Не зависит от масштаба, но имеет некоторые проблемы в этой области. Таким образом, я все еще рекомендовал бы это для кого-то, чтобы попробовать это.

FREAK исходный код совместим с OpenCV (насколько легко объединить их, я не знаю), и автор работает над отправкой его в проект OpenCV.

EDIT:

FREAK теперь является частью детекторов / дескрипторов возможностей opencv.

Выможете прочитать здесь больше о различиях между несколькими функциями детекторов / экстракторов,а также ряд тестов который включает в себя FREAK и другие популярные.

github.com/kikohs/freak/blob/master/demo/freak_demo.cpp неработающая ссылка на пробную версию
+1 Быстрый детектор в сочетании с дескриптором Freak - это то, что дает мне лучшие результаты.
6

многомасштабная гистограмма ориентированных градиентов, Он не будет полностью инвариантным к масштабированию, но если ваши данные ограничены разумным набором масштабных пределов (часто на практике), то это, вероятно, сработает для вас.

Другой подход, полностью зависящий от того, что вы планируете использовать, заключается в использованииposeletsдаже если они построены поверх неинвариантного дескриптора, такого как простая гистограмма ориентированного градиента, или моделей внешнего вида. Если аннотации в ваших данных обучения включают примеры различных предметов для обнаружения всех в разных масштабах, то расстояние в стиле Прокруста, используемое в Поселеце для обучения, должно позаботиться о большой неизменности масштаба. Это может быть неудовлетворительным, хотя, если ваше основное применение не локализовано обнаружение деталей.

Кроме того, я думаю, что весьма прискорбно, что SIFT и SURF были способны запатентовать таким образом, учитывая, что они (по крайней мере частично) финансировались за счет долларов налогоплательщиков посредством грантов.

У вас есть не приватная ссылка на информационный мультимасштабный HoG для тех из нас, у кого нет подписок IEEE?
11

fastest scale and rotation invariant descriptor extractor, этоopen source и вы можете использовать его легко, как это реализовано в OpenCV. Вам нужен бинарный сопоставитель, использующий расстояние Хэмминга, такой как BruteForceMatcher.

Здесь у вас естьпример о том, как его использовать, легко заменяется дескриптором SIFT.

Похоже, ваша ссылка на пример не работает :(
-1

патентовано) путем формирования участков вокруг опорных точек.

Привет, добро пожаловать на SO, и спасибо за попытку внести свой вклад. Тем не менее, нет смысла добавлять в ответ ответ без дополнительной информации, если на вопрос уже получен подробный и принятый ответ, как здесь.
3

FREAK теперь включен в OpenCV 2.4.2, вы можете использовать его легко :-)

Похожие вопросы