web-dev-qa-db-ja.com

Java

Javaのオープンソースの顔認識フレームワークを提案してもらえますか?

14
user189352

いくつかのオープンソースの顔認識Javaシステムを試すことができますが、同じことを探していますが、それでもより良いオプションを探しているので、あまり期待しないでください!

画像内の顔を見つけることを「顔検出」と呼び、顔に続いて「顔追跡」と呼び、検出された顔の身元を特定することを「顔認識」と呼びます。それぞれを行うにはおそらく異なるソフトウェアとアルゴリズムを使用する必要があるため、これをお伝えします。 Paulの回答によると、OpenCVは顔検出を簡単に実行できますが(Haar Cascade Detector)、顔認識は簡単には実行できません(実際には、固有顔認識を実行する方法があります)。これは、顔認識が必要なように思われるため、OpenCVはそうではありません。 Javaを使用しているため、必ずしも最善の選択肢とは限りません。

Javaで顔検出と顔認識の両方を行うFAINTを試すことができますが、ほとんど文書化されていません。 「 http://darnok.org/programming/face-recognition/ "」もありますが、良い結果が得られないようです。顔認識用の「 http://uni.johnsto.co.uk/faces/ "」、顔認識/検出用の「Neuroph」もあります。

良い解決策を見つけたら、「[email protected]」で教えてください。幸運を祈ります!シャービンエマミ

17
Shervin Emami

チェックアウト OpenCV 。ハールカスケードとして知られる、Viola&Jonesによる十分に文書化され評価の高い顔検出技術が実装されています。

完全なチュートリアル-トレーニングから実験まで--- ここから入手できます 。実際にトレーニングを行う必要はないことに注意してください。 OpenCVには、顔検出用のいくつかを含む、いくつかの機能カスケードがバンドルされています。

6
Paul Lammertsma

正確な顔認識は、いくつかのステップに分けることができるタスクです。

  1. 顔検出
  2. 顔のランドマークポイントの発見
  3. ランドマークを使用した回転、トリミング、配置、スケーリング
  4. 顔の記述子ポイントの発見(これらは人間が読める形式ではありません)
  5. 最も近い一致を見つけるための既知の顔との比較

これはいくつかのライブラリで実行できますが、OpenCVとCaffeの bytedeco ラッパーと、マトリックス比較用のND4jなどのライブラリが必要です。

OpenCV 顔検出用のHAARカスケードがあり、顔のポイント認識にランドマークを使用できます。これにより、手順1〜3を実行できます。

顔記述子の検出は、 Caffe のbytedecoラッパーとVGG Face Descriptorライブラリ( http://www.robots.ox.ac.uk/~vgg/software/vgg_face/)を使用して実行できます。

最後に、 Nd4j を使用して画像を比較できます。個人ごとに分類された画像が十分にある場合は、ライブラリのニューラルネットワークを使用して分類できます。

3