6

先週、私は顔認識の研究と実験を行ってきました。顔写真を撮るだけでデータベース(SQL)から人物情報を検索できるアプリケーションを想定しています。当初の期待は、フェイスダウンをキーまたはハッシュに圧縮し、これをデータベースのルックアップとして使用できることでした。情報を調べている人は、ファイル上の元の画像とその前に立っている人を最終的に比較する可能性があり、最終的には最終的に比較する可能性が高いため、これは非常に正確である必要はありません。

OpenCV/JavaCV は明らかな出発点のようであり、それが提供する顔検出はうまく機能しますが、顔認識のための Eigenfaces の実装は理想的ではありません。新しい顔が必要になるたびに、何十万ものユーザーの顔を再コンパイルするオンライン トレーニングがあるからです。トレーニング セットに追加しても機能しません。

OpenCV の Haar Cascade 機能を使用して抽出された顔に SURF 記述子を使用して実験しています。これにより、意図した結果に近づくように見えますが、約 30 個の記述子を効率的に検索して比較する方法を考えることができません (いずれかです)。データベース内の 64 または 128 次元ベクトル)。LSH およびスペクトル ハッシング アルゴリズムについていくつか読んだことがありますが、Java の実装が見つからず、自分でそれらを実装するには数学が十分ではありません。

これがどのように達成されるか、またはそれが可能であるかどうかについて、誰か考えやアイデアを持っていますか?

4

1 に答える 1

2

ハッシュは複雑ではなく、数学の学位も必要ありません。

任意の2つの画像がかなり類似した数の「記述子」をもたらすと仮定すると、十分に高い信頼係数を取得するために十分な数の画像と合理的に一致する必要があるだけです。

これらの記述子がどの程度具体的であるかによって、ハッシュアルゴリズムで受け入れることができる衝突のレベルが決まります。

それらのいくつかを持っているので、私はあなたがあまり洗練されたものを必要としないことを提案します-結局のところ、あなたはおそらくあなたの検索で「あいまいさ」のレベルが欲しいですか?

簡単なことから始めましょう。実験して改良します。記述子ごとに異なるハッシュが必要になる場合もあります。つまり、一部は他よりも具体的である可能性がありますか?

うまくいけば、思考のためのいくつかの食べ物。

于 2011-04-19T23:08:48.953 に答える