1

Есть ли какие-либо преимущества для преобразования изображения перед использованием функций SIFT? Например, я пытаюсь соответствовать «мишени» изображение банана:Преобразование изображения перед извлечением функций SIFT

banana

... на «сцене» образ, который содержит также банан, но в какой-то неизвестной ориентации и перспективы.

Первый подход: извлекать функции SIFT из целевого изображения, сопоставлять их с функциями SIFT в изображении сцены и вычислять гомографию.

Второй подход: преобразование целевого изображения различными способами, чтобы имитировать изменения перспективы:

enter image description here

... перед извлечением SIFT функции из каждого преобразования. Объедините извлеченные функции, а затем сопоставьте их со сценой и вычислите гомографию.

Есть ли какое-либо преимущество для подхода 2, с точки зрения верности соответствия функций?

ответ

1

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

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

Также, если вы преобразуете изображения и затем извлекаете эту функцию, если преобразование недостаточно значимо, если оно слишком похоже на оригинальную функцию, алгоритм сопоставления будет отбрасывать как исходную, так и преобразованную функцию. Поскольку соответствие работает, исключив все совпадения, но в X раз более вероятное, чем следующее лучшее совпадение.

+0

Хорошо, спасибо за помощь. –

+1

Вы дали два правильных и неправильных догадки :) Это помогает много, и там алгоритмы, которые реализуют это, - см. Мой ответ. Что касается «вторых ближайших критериев соответствия», есть два способа борьбы с ним.Сначала - от ASIFT - просто соответствует каждому синтезатору. 1-е изображение по сравнению с каждым синтезатором. 2-й, а затем конкатенатные матчи. Таким образом, только один экземпляр ключевой точки существует в каждом изображении. Второй - от MODS - просто не используйте ключевую точку с той же позиции, что и вторая ближайшая. –

+0

Благодарим вас за вход @ old-ufo. Всегда хорошо обновляться. В моем ответе я сделал в общей сложности 4 догадки, поэтому, думаю, вы, должно быть, пропустили один. ;-) – onemasse

0

SIFT хорош, когда у вас есть текстурированные объекты ... Банан - это в основном форма с одним цветом.

В этом случае ключевое слово-извлечение (просеивание и т. Д.) Не удастся. Неважно, что такое

+0

Спасибо, это интересно. Возможно, мой пример не был выбран. Однако, что касается текстурированного объекта, помогут ли преобразования в этом случае? –

+1

@ChrisParry, проверьте мой ответ ниже. Динамический - вы правы, но иногда и не текстурированы. –

1

Это определенно поможет. Два документа, которые улучшают SIFT, основаны на этом принципе. Первый - ASIFT - имитирует очень большое число, а затем соответствует образам n x n. Гораздо более надежный, чем SIFT и MUCH медленнее.

Второй - MODS - делать синтез итеративно (только при необходимости) и использовать Hessian-Affine и MSER в качестве детекторов, что повышает надежность и скорость по сравнению с ASIFT. На самом деле, например, банан в MODS бумаги:

enter image description here

На обеих ссылок можно найти бумагу и исходные коды (C++).