2013-03-14 3 views
0

Есть 10 страниц из той же книжки-малыша, в которой содержание страниц - все картинки, и я извлекал ключевые точки и дескрипторы из каждого из них в качестве моих данных обучения. Я хочу определить, какие страницы находятся в дескрипторах на основе камеры.Совместимость дескриптора SIFT реального времени для нескольких изображений C++/OpenCV

К настоящему моменту я реализую его, извлекая ключевые точки и дескрипторы для каждого фрейма и сопоставляя дескрипторы с данными обучения один за другим с помощью FlannBasedMatcher из OpenCV, после чего он возвращает наилучшее совпадение.

Проблема в том, что он не может реализоваться в режиме реального времени, и время работы будет очень медленным, если данные обучения превышают 3 страницы.

Ребята, знаете ли, какой-либо лучший подход к его осуществлению, пожалуйста?

ответ

1

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

Если вам нужна более высокая точность, у вас нет большого выбора, и вам необходимо группировать функции (это требует дополнительного времени, пропорционального количеству данных обучения и найденных ключевых точек).

Также: рассмотрите возможность использования SURF вместо SIFT, это намного быстрее из-за некоторых интеллектуальных оптимизаций.

1

Действительно, Surf - это намного лучший алгоритм, хотя он менее точен, чем просеивать, вы будете иметь, что это время запуска почти в реальном времени, я также предложил бы, как сказано выше, рассчитать функции и выполнить сопоставление с использованием параллельные вычисления (достаточно просто, если вы только что использовали OpenMP).

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

+0

В Vision, нужно быть очень осторожным, оценивая алгоритмы как «лучше» или «хуже». Существуют типы изображений, в которых SURF дает порядки величин меньше очков интереса, чем SIFT, так как есть приложения, в которых SURF работает отлично и быстро. – DCS

+0

Благодарим за сообщение. Я тоже должен быть более точной. Будет ли лучше, если я буду использовать классификатор? – user1959079

Смежные вопросы