4

私はオーディオフィンガープリントシステムに取り組んでおり、最近いくつかの論文と調査を行いました。特にこのページ:c#AudioFingerprintingとLocality Sensitive Hashing

これで、32ミリ秒のオーディオごとに一連のフィンガープリントを取得しました。私がやりたいのは、LSHまたは他の類似性保存方法を使用して、これらの個々のフィンガープリントを(それらのシーケンスではなく)ハッシュすることです。LSHについて私が理解したことから、LSHは多次元ベクトルで機能し、ハミング空間で比較できるバイナリ文字列を生成します。

ここでの私の問題は、私が持っている指紋が多次元ではないということです。それらは単一の長整数です。LSHを使用してこれらをハッシュするにはどうすればよいですか?一次元スカラーを(類似性を維持する方法で)ハッシュする方法はありますか?

4

1 に答える 1

1

返信が遅くなりましたが、これが問題です。確かに非常に単純でしたが、どうして見逃したのかわかりません。

LSH はランダム射影ベクトルを使用して、類似性を維持しながらベクトルまたはスカラーを異なる次元空間に射影します。ここで良い答えを確認してください https://stackoverflow.com/a/12967538/858467

したがって、次数 [nx 1] のランダム射影行列を作成し、それをスカラー [1 x 1] またはスカラー [1 xm] のベクトルで乗算して、射影 [nx 1] または [nxm] を取得するだけで済みました。 ]。その後、バイナリベクトルを取得するためにそれをしきい値処理するようです。

これは正しい方法だと思いますが(以前も同じ方法で行ったことがあります)、今のところこれで良いバイナリベクトルを取得できないようです。問題をもう少し掘り下げたら、おそらく別の質問を投稿します。

于 2013-01-03T06:00:38.643 に答える