Сопоставление функций с использованием OpenCV ORB не всегда дает удовлетворительные результаты

Я использую OpenCV ORB для проверки сходства двух изображений. ORB эффективен и в большинстве случаев дает наилучшие результаты. Но в некоторых случаях результаты ORB неудовлетворительны. Я использую параметр distance, полученный после KnnMatch, для идентификации похожих изображений.

Моя логика - Если диапазон значений расстояния начинается с меньшего значения, то изображения похожи.

Мой код доступен по этой ссылке.

Image1

Image2

Image3

После сравнения результат говорит, что Image2 и Image3 похожи на Image1

Должен ли я изменить эту зависимую от расстояния логику? Будет ли подход в сочетании с машинным обучением и OpenCV ORB решением?


person George T Kurian    schedule 11.10.2018    source источник


Ответы (1)


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

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

person Daniel Kirmani    schedule 12.10.2018
comment
Я не мог понять, что ты пытаешься сказать. Вы можете объяснить? - person George T Kurian; 12.10.2018