Я использую ORB в Python для обнаружения признаков на изображениях, чтобы сопоставить новое изображение с набором опорных изображений (сопоставление объектов и гомография). Новые изображения имеют подизображения, представляющие интерес на неизвестном фоне.
Я обнаружил, что в некоторых случаях обнаруживаются многие ключевые точки, за исключением ключевых точек, представляющих интерес. Возьмите следующий пример:
Если я запрашиваю (по умолчанию) 500 ключевых точек, ни одна из них не находится в интересующей области. Надпись на изображении на самом деле является «фоном» того, что я пытаюсь сопоставить, то есть большим подизображением на бледном фоне. Если я запрашиваю (намного) больше ключевых точек, я начинаю получать некоторые в интересующей области, но теперь все работает соответственно медленнее: обнаружение и сопоставление.
В этом случае поможет поиск более крупных функций. или функции, которые были выбраны по всему изображению. Какие параметры я могу предоставить cv2.ORB_create () для достижения этой цели? Или это невозможно?
Полагаю, я мог бы разделить изображение и применить обнаружение и сопоставление объектов для каждой ячейки, но, похоже, это было бы гораздо менее эффективно, чем глобальный подход.
I натолкнулся на понятие алгоритмов немаксимального подавления (https://github.com/BAILOOL/ANMS-Codes), которое на первый взгляд, похоже, находит ключевые точки равномерно. Но я, должно быть, что-то упускаю, потому что это работает как постобработка обнаруженных функций.
Более серьезный вопрос (я довольно плохо знаком с компьютерным зрением): есть ли какие-то эвристики, которые пытались помочь сопоставить объекты где-нибудь внутри пользовательских снимков (на мобильных телефонах) с неизвестными объектами на заднем плане?
Спасибо за вашу помощь.