Неравномерное распределение признаков при обнаружении с помощью ORB в Python - PullRequest
0 голосов
/ 28 февраля 2020

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

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

Keypoints in sample image

Если я запрашиваю (по умолчанию) 500 ключевых точек, ни одна из них не находится в интересующей области. Надпись на изображении на самом деле является «фоном» того, что я пытаюсь сопоставить, то есть большим подизображением на бледном фоне. Если я запрашиваю (намного) больше ключевых точек, я начинаю получать некоторые в интересующей области, но теперь все работает соответственно медленнее: обнаружение и сопоставление.

В этом случае поможет поиск более крупных функций. или функции, которые были выбраны по всему изображению. Какие параметры я могу предоставить cv2.ORB_create () для достижения этой цели? Или это невозможно?

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

I натолкнулся на понятие алгоритмов немаксимального подавления (https://github.com/BAILOOL/ANMS-Codes), которое на первый взгляд, похоже, находит ключевые точки равномерно. Но я, должно быть, что-то упускаю, потому что это работает как постобработка обнаруженных функций.

Более серьезный вопрос (я довольно плохо знаком с компьютерным зрением): есть ли какие-то эвристики, которые пытались помочь сопоставить объекты где-нибудь внутри пользовательских снимков (на мобильных телефонах) с неизвестными объектами на заднем плане?

Спасибо за вашу помощь.

...