Java でのオープンソースの顔認識フレームワークを提案してくれる人はいますか?
3 に答える
試すことができるオープンソースの顔認識 Java システムがいくつかありますが、あまり期待しないでください。私は同じものを探していますが、まだより良いオプションを探しているからです!
画像内の顔を見つけることを「顔検出」、顔を追跡することを「顔追跡」、検出された顔の同一性を判断することを「顔認識」と呼びます。おそらく、それぞれを行うには異なるソフトウェアとアルゴリズムを使用する必要があるためです。ポールの答えによると、OpenCV は顔検出 (Haar Cascade Detector) を簡単に実行できますが、顔認識はそれほど簡単ではありません (実際には固有顔認識を実行する方法があります)。 Javaを使用しているため、必ずしも最良の選択肢ではありません。
Java で顔検出と顔認識の両方を行う FAINT を試すことができますが、ほとんど文書化されていません。「 http://darnok.org/programming/face-recognition/ 」もありますが、なかなか良い結果が得られないようです。顔認識用の「http://uni.johnsto.co.uk/faces/」、顔認識・検出用の「Neuroph」もあります。
良い解決策を見つけたら、「draw3d@shervinemami.co.cc」まで教えてください。頑張ってください! シャービン・エマミ
OpenCVをチェックしてください。Haar カスケードとして知られる Viola & Jones による十分に文書化され、高い評価を得ている顔検出技術が実装されました。
トレーニングから実験までの完全なチュートリアルは、こちらから入手できます。実際にトレーニングを行う必要はないことに注意してください。OpenCV には、顔検出用のいくつかを含む、いくつかの機能カスケードがバンドルされています。
正確な顔認識は、いくつかのステップに分けることができるタスクです。
- 顔検出
- 顔の目印発見
- ランドマークを使用した回転、トリミング、配置、およびスケーリング
- 顔の記述子ポイントの発見 (これらは人間が読めるものではありません)
- 最も近い一致を見つけるための既知の顔との比較
これはいくつかのライブラリで実行できますが、OpenCV および Caffe 用のbytedecoラッパーと、行列比較用の ND4j などのライブラリが必要です。
OpenCVには、顔検出用の HAAR カスケードがあり、顔のポイント認識に flandmark を使用できます。これにより、手順 1 ~ 3 を実行できます。
Caffeの bytedeco ラッパーと VGG Face Descriptor ライブラリ ( http://www.robots.ox.ac.uk/~vgg/software/vgg_face/ )を使用して、顔記述子の検出を行うことができます。
最後に、Nd4jを使用して画像を比較できます。個人別に分類された画像が十分にある場合は、ライブラリのニューラル ネットワークを分類に使用できます。