Я прочитал статью о LSH и знаю, что она используется для решения аппроксимированной задачи k-NN. Мы можем разделить алгоритм на две части:
Дан вектор в
D
измерениях (гдеD
большой) любого значения, переведите его с наборомN
(гдеN<<D
) хэш-функций в двоичный вектор вN
измерениях.Используя расстояние Хэмминга, примените некоторую технику поиска к набору заданных двоичных кодов, полученных на этапе 1, чтобы найти k-NN.
Ключевым моментом является то, что вычисление расстояния Хэмминга для векторов в N
измерениях выполняется быстро с использованием XOR.
В любом случае, у меня есть два вопроса:
Пункт 1 по-прежнему необходим, если мы используем бинарный дескриптор, например ORB? Поскольку дескрипторы ORB уже являются бинарными и мы используем расстояние Хэмминга для их сравнения, почему мы должны выполнять первую точку?
Как происходит преобразование изображений, описанных SIFT? Каждый дескриптор SIFT состоит из 128 бит, и каждое изображение описывается набором дескрипторов. Итак, у нас есть матрица
descX128
(гдеdesc
— количество используемых дескрипторов), а LSH обычно принимает на вход вектор.