先週、私は顔認識の研究と実験を行ってきました。顔写真を撮るだけでデータベース(SQL)から人物情報を検索できるアプリケーションを想定しています。当初の期待は、フェイスダウンをキーまたはハッシュに圧縮し、これをデータベースのルックアップとして使用できることでした。情報を調べている人は、ファイル上の元の画像とその前に立っている人を最終的に比較する可能性があり、最終的には最終的に比較する可能性が高いため、これは非常に正確である必要はありません。
OpenCV/JavaCV は明らかな出発点のようであり、それが提供する顔検出はうまく機能しますが、顔認識のための Eigenfaces の実装は理想的ではありません。新しい顔が必要になるたびに、何十万ものユーザーの顔を再コンパイルするオンライン トレーニングがあるからです。トレーニング セットに追加しても機能しません。
OpenCV の Haar Cascade 機能を使用して抽出された顔に SURF 記述子を使用して実験しています。これにより、意図した結果に近づくように見えますが、約 30 個の記述子を効率的に検索して比較する方法を考えることができません (いずれかです)。データベース内の 64 または 128 次元ベクトル)。LSH およびスペクトル ハッシング アルゴリズムについていくつか読んだことがありますが、Java の実装が見つからず、自分でそれらを実装するには数学が十分ではありません。
これがどのように達成されるか、またはそれが可能であるかどうかについて、誰か考えやアイデアを持っていますか?