Подтвердить что ты не робот

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

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

Есть ли какие-либо экстракторы признаков, которые могут извлекать масштабно-инвариантные функции так же быстро, как SURF и не так сильно запатентованы как SURF и SIFT?

4b9b3361

Ответ 1

Хотя вы уже выбрали BRISK, вы можете найти FREAK. Автор утверждает, что имеет лучшие результаты, чем BRISK и ORB. Я также должен добавить, что ORB является масштабируемо-инвариантным, но имеет некоторые проблемы в этой области. Поэтому я бы порекомендовал его кому-то попробовать.

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

EDIT:

FREAK теперь является частью детектора/дескрипторов функции opencv.

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

Ответ 2

Предполагается, что FREAK является быстрым расширителем дескриптора и , с открытым исходным кодом, и вы можете легко его использовать, поскольку он реализован в OpenCV. Вам нужен бинарный бит, который использует расстояние Хэмминга, например BruteForceMatcher.

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

Ответ 3

В итоге я использовал Brisk, который является детектором функций с производительностью, сравнимой с SURF, но под лицензией BSD. Кроме того, он получил очень красивую С++-версию с открытым исходным кодом, которая легко подключается к инфраструктуре OpenCV FeatureDetector, поэтому 2 строки предпочитают использовать Brisk над SURF в вашем коде.

Ответ 4

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

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

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

Ответ 5

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

Ответ 6

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

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

Пабло Ф. Алькантарилла, Хесус Нуэво и Адриен Бартоли, "" Быстрая явная диффузия для ускоренных функций в нелинейных шкалах "," Британское видение машины" Конференция (BMVC). Бристоль, Великобритания. Сентябрь 2013 г.

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

* Firenze

Ответ 7

Обнаружение ориентировочных точек и поиск свойств свиней (он не запатентован) путем формирования патчей вокруг ориентировочных точек.