2013-11-10 2 views
0

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

ответ

4

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

OpenCV имеет ряд алгоритмов двоичного описания, которые предназначены для быстрой и эффективной памяти. Очень надежный, который был показан как хороший (и лучше в некоторых случаях), поскольку SIFT является дескриптором FREAK. Для этого требуется отдельное обнаружение ключевых точек (например, FAST). Все они легко доступны с помощью детектора функций OpenCV и интерфейса дескриптора.

Если вам нужно решить проблему с использованием дескрипторов SIFT, я бы предложил посмотреть на PCA-SIFT. Вы можете использовать PCA для эффективного уменьшения размерности дескриптора и сохранения информации. Однако в OpenCV это было бы менее просто.

+0

Хороший ответ, но вы можете использовать FREAK с любым детектором ключей. – GilLevi

+0

Конечно, в примере OpenCV FREAK они используют детектор ключевой точки SURF. Я просто назвал его. В моем тестировании я обнаружил, что обнаружение FAST на основе пирамиды отлично справляется с повышением скорости и качества функции. –

0

Посмотрите на this project, он делает именно то, что вы хотите архивировать, - систему поиска изображений на основе SIFT-мешков.

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