SIFT в matlab с использованием функции vl_sift

Я использую функцию vl_sift(с сайта vl_feat) для поиска дескриптора SIFT, который дает мне дескриптор размером 128*1 для одного изображения и 128*2 для второго. У меня есть причина 128, но я не понимаю, почему столбцы продолжают меняться (иногда 1, а иногда 2), должно быть, так же, верно? Может кто-нибудь объяснить мне, что эти колонки представляют? Спасибо

2 ответа

Решение

Особенности извлечены из ключевых моментов. В случае SIFT они представляют собой структуры, похожие на капли. Другими словами, функция vl_sift ищет ключевую точку и извлекает 128-мерный дескриптор из КАЖДОЙ из ключевых точек.

У вас есть различные измерения (128*1 или 128*2 и т. Д.), Потому что в одном изображении vl_sift находит одну ключевую точку в другой, она находит 2 ключевых точки. Вот почему у вас есть разные измерения.

SIFT извлекает произвольное количество дескрипторов, каждый из которых имеет размер 128. Количество извлеченных дескрипторов не будет фиксированным числом, поскольку оно зависит от того, сколько точек "достаточно сильны", чтобы быть хорошим дескриптором. Каждый из дескрипторов имеет 128 "функций" в алгоритме SIFT, остальные (например, SURF, 64 функции) будут отличаться.

В вашем случае вы получаете одну функцию в первом изображении, 2 во втором. Это очень мало функций, возможно, ваши изображения слишком маленькие?

Другие вопросы по тегам