В настоящее время я работаю и сравниваю производительность нескольких детекторов функций, предоставляемых OpenCV, в качестве основы для визуального соответствия функций.
Я использую SIFT дескрипторы. Я выполнил удовлетворительное сопоставление (после отклонения неверных совпадений) при обнаружении функций MSER и DoG (SIFT) .
В настоящее время я тестирую свой код с помощью GFTT («Хорошие возможности для отслеживания - углы Харриса»), чтобы получить сравнение, а также потому, что в окончательной заявке набор функций GFTT будет доступен в процессе визуального отслеживания функций.
Я использую cv::FeatureDetector::detect(...)
который предоставляет мне std::vector<cv::KeyPoint>
заполненные обнаруженные функции / ключевые точки / области интереса . Структура cv::KeyPoint
содержит основную информацию о местоположении описываемого объекта, а также информацию о size
и octave
в котором Keypoint было обнаружено.
Мои первые результаты с GFTT были ужасны , пока я не сравнивал типичные size
и octave
параметры в различных типах функций:
- MSER устанавливает размер (от 10 до 40 пикселей) и оставляет октаву равной 0
- DoG (SIFT) устанавливает размер и октаву ( соотношение размер / октава между 20 и 40)
- GFTT параметры всегда : размер = 3 , октава = 0
Я предполагаю, что это потому, что основная цель функций GFTT состояла не в сопоставлении, а только в отслеживании. Это объясняет низкое качество результатов сопоставления, поскольку дескрипторы, извлеченные из таких крошечных функций, перестают быть дискриминационными и инвариантными ко многим вещам , включая небольшие сдвиги в 1 пиксель.
Если я вручную установлю size
для GFTT значение 10–12 , я получу хорошие результаты, очень похожие на те, которые используются при использовании MSER или DoG (SIFT) .
У меня вопрос: есть ли лучший способ определить, на сколько увеличить size
(и / или octave
), чем просто пойти с 10-смотри, если это работает ? Я хочу избежать жесткого кодирования size
увеличения, если это возможно, и определить его программно, но с жестким кодированием все в порядке, пока у меня есть веские аргументы, подтверждающие мой выбор нового алгоритмаsize
/ size
увеличения / size
оценки .