Хеширование с учетом местоположения на звуковых отпечатках пальцев

Я работаю над системой аудиоотпечатков и недавно просмотрел некоторые документы и исследования, в частности эту страницу: C# AudioFingerprinting и хэширование с учетом местоположения

Теперь у меня есть серия отпечатков пальцев для каждых 32 мс звука. Что я хочу сделать, так это хэшировать эти отдельные отпечатки пальцев (а не их последовательность вместе), используя LSH или какой-либо другой метод сохранения сходства. Из того, что я понял о LSH, он работает с многомерными векторами и создает двоичные строки, которые затем можно сравнивать в пространстве Хэмминга.

Моя проблема в том, что отпечатки пальцев, которые у меня есть, не многомерны. Это просто одиночные длинные целые числа. Как мне их хешировать с помощью LSH? Есть ли способ хеширования (с сохранением подобия) одномерных скаляров?


person Arnolin    schedule 21.12.2012    source источник


Ответы (1)


Запоздал с ответом, но вот в чем дело, это было действительно очень просто, но не знаю, как я это пропустил.

LSH будет использовать случайные проекционные векторы для проецирования вектора или скаляра в другое размерное пространство, сохраняя при этом сходство. Проверьте хороший ответ здесь https://stackoverflow.com/a/12967538/858467

Так что все, что мне нужно было сделать, это создать случайную матрицу проекций порядка [nx 1], а затем умножить ее на скаляр [1 x 1] или вектор скаляра [1 xm], чтобы получить проекции [nx 1] или [nxm ]. После этого пороговое значение для получения двоичных векторов, кажется, делает это.

Хотя я считаю, что это правильный способ сделать это (я делал это так же и раньше), я не могу получить хорошие двоичные векторы с этим на данный момент. Я, вероятно, опубликую еще один вопрос, когда получу более подробную информацию о проблеме.

person Arnolin    schedule 03.01.2013