Прежде всего, я должен сказать, что я новичок в области компьютерного зрения, и в настоящее время я столкнулся с проблемой, которую я безуспешно пытался решить с помощью opencv (Java Wrapper).
По сути, у меня есть изображение части модели, снятой камерой (разные углы, резолюция, повороты...), и мне нужно найти положение этой части в модели.
Пример изображения:
Изображение модели:
Итак, один вопрос: с чего мне начать/какой алгоритм мне следует использовать?
Моей первой попыткой было использовать сопоставление ключевых точек с SURF в качестве детектора, дескриптора и BF в качестве сопоставления. Это сработало примерно на 2 фотографиях из 10. Я использовал параметры по умолчанию и пробовал другие детекторы, без каких-либо улучшений. (Возможно, это вопрос правильных параметров. Но как узнать правильные параметры в сочетании с правильным алгоритмом?...) Два примера:
Моя вторая попытка состояла в том, чтобы использовать цвет, чтобы различать определенные элементы в модели и сравнивать структуру с самой моделью (в дополнение к изображению модели у меня также есть представление модели в формате xml...). Прямо сейчас я извлек красный цвет из изображения, отрегулировал значения h, s, v вручную, чтобы получить наилучшее обнаружение примерно для 4 изображений, что не удается для других изображений.
Два примера:
Я также пытался использовать обнаружение краев (осторожный, серый, с выравниванием гистограммы) для обнаружения геометрических структур. Для некоторых результатов я мог предположить, что это сработает, но использование тех же хитроумных параметров для других изображений «не работает». Два примера:
Как я уже сказал, я не знаком с компьютерным зрением и просто пробовал некоторые алгоритмы. Я столкнулся с проблемой, что я не знаю, какая комбинация алгоритмов и методов является лучшей, и в дополнение к этому, какие параметры я должен использовать. Протестировать вручную кажется невозможным.
заранее спасибо
геморра