Что размер и ответ точно представляют в ключевой точке SURF?
Я использую OpenCV 2.3 для определения и сопоставления ключевых точек. Но я немного запутался с size
а также response
параметры, заданные алгоритмом обнаружения. Что именно они значат?
Основываясь на руководстве OpenCV, я не могу понять это:
float size
: диаметр значимой окрестности ключевой точки
float response
: ответ, по которому были выбраны наиболее сильные ключевые точки. Может использоваться для дальнейшей сортировки или подвыборки
Я думал, что лучше всего отследить тот, у кого самый высокий отклик, но, похоже, это не так. Так, как я мог бы выбрать часть набора ключевых точек, возвращаемых детектором прибоя, чтобы сохранить только лучший из них с точки зрения отслеживаемости?
2 ответа
Размер и ответ
SURF - это детектор BLOB-объектов, короче говоря, размер объекта равен размеру BLOB-объекта. Чтобы быть более точным, возвращаемый OpenCV размер равен половине длины приближенного гессианского оператора. Размер также известен как масштаб, это связано с тем, как работают детекторы BLOB-объектов, т. Е. Они функционально равны сначала размытию изображения с помощью фильтра Гаусса в нескольких масштабах, а затем понижающей дискретизации изображений и, наконец, обнаружению капель с фиксированным размером. Смотрите изображение ниже, показывающее размер функций SURF. Размер каждого объекта - это радиус нарисованного круга. Линии, идущие от центра элементов к окружности, показывают углы или ориентации. На этом изображении сила отклика фильтра обнаружения капель имеет цветовую кодировку. Вы можете видеть, что большинство обнаруженных функций имеют слабый отклик. (см. изображение в полном размере здесь)
Эта гистограмма показывает распределение сил отклика функций на изображении выше:
Какие функции для отслеживания?
Самый надежный трекер функций отслеживает все обнаруженные функции. Чем больше функций, тем больше надежность. Но нецелесообразно отслеживать большое количество функций, так как часто мы хотим ограничить время вычислений. Количество функций для отслеживания часто следует подбирать эмпирически для каждого приложения. Часто изображение делится на регулярные субрегионы, и в каждом из них сохраняются n самых сильных признаков. Обычно n выбирается таким образом, чтобы в каждом кадре было обнаружено около 500~1000 объектов.
Рекомендации
Чтение журнальной статьи с описанием SURF определенно даст вам хорошее представление о том, как это работает. Просто постарайтесь не застрять в деталях, особенно если ваш фон не в машинном / компьютерном зрении или обработке изображений. На первый взгляд детектор SURF может показаться чрезвычайно новым, но основная идея заключается в оценке оператора Гессиана (хорошо установленный фильтр) с использованием интегральных изображений (которые использовались другими методами задолго до SURF). Если вы хотите хорошо понять SURF и не знакомы с обработкой изображений, вам нужно вернуться и прочитать вводный материал. Недавно я наткнулся на новую и бесплатную книгу, чья глава 13 содержит хорошее и краткое введение в обнаружение функций. Не все, что там сказано, технически правильно, но это хорошая отправная точка. Здесь вы можете найти еще одно хорошее описание SURF с несколькими изображениями, показывающими, как работает каждый шаг. На этой странице вы видите это изображение:
Вы можете видеть белые и черные пятна, это те объекты, которые SURF обнаруживает в нескольких масштабах и оценивает их размеры (радиус в коде OpenCV).
"размер" - это размер области, охватываемой дескриптором в исходном изображении (он получается путем понижающей дискретизации исходного изображения в масштабном пространстве, следовательно, он изменяется от ключевой точки к ключевой точке в зависимости от их масштаба).
"Ответ" - это действительно показатель "насколько хорош" (грубо говоря, с точки зрения угла) пункт.
Хорошие точки стабильны для статического извлечения сцены (это основная цель дескрипторов SIFT/SURF). В случае отслеживания у вас могут появиться хорошие точки, потому что отслеживаемый объект находится на хорошо сформированном фоне, наполовину в тени... затем исчезает, потому что это условие изменилось (изменение света, окклюзия...). Таким образом, для отслеживания задач нет гарантии, что всегда найдется хороший момент.