Сравнение дескрипторов функций большого набора изображений

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

Мне необходимо сформировать полный график расстояний между каждым из изображений. То есть мне нужно определиться с расстоянием от каждого изображения до каждого другого изображения с помощью некоторой метрики.

До сих пор я пытался использовать FLANN для вычисления 20 ближайших соседних дескрипторов между двумя узлами, а затем вычислять среднее расстояние между каждым из соответствующих дескрипторов. К сожалению, этот процесс занимает слишком много времени.

Есть ли способ для меня, чтобы сравнить дескрипторы этих изображений более эффективно?

1 ответ

Решение

Вы можете объединить свой SIFT-дескриптор в пакет визуальных слов (BoV) или Вектор локально агрегированного дескриптора (VLAD). В принципе:

1 - вычислить кодовую книгу (K SIFT дескрипторы), например, с помощью K-средних

2 - Для каждого изображения извлеките дескрипторы SIFT, а затем найдите ближайшего соседа каждого в кодовую книгу. Следовательно, вычислите гистограмму SIFT изображения в соответствии с кодовой книгой. Это самый простой метод (жесткое кодирование, объединение сумм), но существует альтернатива (и часто дают лучшие результаты для проблем компьютерного зрения)

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

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