大学のプロジェクト用の無料顔認識ライブラリを探しています。 顔検出を探していません。実際の認識を探しています。つまり、指定した顔または特定の顔間の距離を計算するライブラリを含む画像を見つけることを意味します。
私は現在、顔を検出するために OpenCV と、認識のために大まかな Eigenface アルゴリズムを使用しています。しかし、自分で書いたEigenfaceアルゴリズムよりもパフォーマンスの良いものがあるはずだと思いました。パフォーマンスとしての速度について話しているのではなく、単純なEigenfaceアプローチよりも良い結果が得られるライブラリを探しています。
Faint を見てみましたが、ライブラリは自分のアプリケーションではあまり再利用できないようです。
Python、Java、C++、Cなどのライブラリに満足しています。現時点でいくつかの外部のWindows専用コードに依存しているため、Windowsマシンで実行できるのが最良の方法です。
以下は、Windowsで実行される顔認識用の既製パッケージを提供する商用ベンダーのリストです。
Cybula -彼らの情報 顔認識SDK 。これは、大学教授によって設立された会社であり、そのため、彼らのウェブサイトは専門家に見えません。ダウンロードできる価格情報やデモはありません。価格情報については、 連絡する にする必要があります。
NeuroTechnology -彼らの情報 顔認識SDK 。この会社には 前払いの価格情報 と SDKの実際の30日間の試用版 の両方があります。
ピッツバーグパターン認識Googleによる取得)彼らの情報---(顔追跡および認識SDK 彼らが提供するデモは、SDSKではなく技術を評価するのに役立ちます。価格情報については、 連絡する にする必要があります。
Sensible Vision -彼らの情報 SDK 。彼らのサイトでは価格見積りを簡単に入手できます。また、技術の評価に役立つ評価キットを注文することもできます。
OpenCV 2.4.2には、非常に新しい cv :: FaceRecognizer が付属しています。以下の非常に詳細なドキュメントを参照してください。
OpenCV C++ API(BSDライセンス)の最新の顔認識ライブラリ libfacerec をリリースしました。 libfacerecには追加の依存関係はなく、Eigenfacesメソッド、Fisherfacesメソッド、およびLocal Binary Patterns Histogramsを実装します。ライブラリの一部はOpenCV 2.4に含まれる予定です。
Libfacerecの最新リビジョンは、次の場所から入手できます。
このライブラリは、今後のOpenCV 2.4を念頭に置いてOpenCV 2.3.1用に作成されているため、2.3.1より前のOpenCVバージョンはサポートしていません。このプロジェクトは、十分に文書化されたAPIを備えたCMakeプロジェクトとして提供され、性別の分類に関するチュートリアルもあります。ドキュメントのHTMLバージョンは次の場所で見ることができます。
これらのアルゴリズムがどのように機能するかを理解したい場合は、私の顔認識ガイド(PythonおよびGNU Octave/MATLABの例を含む)を読んでください。
my github repository には、アルゴリズムのPythonおよびGNU Octave/MATLAB実装もあります。 facerec の両方のプロジェクトには、アルゴリズムを評価するためのいくつかの相互検証方法も含まれています。
関連する出版物は次のとおりです。
pam-face-authentication 顔認証用のPAMモジュール:ただし、必要なものを取得するには多少の作業が必要です。簡単なテストにより、認識率はNeuroTechnologyのVeriLookほど高くないことが示されました。
Malic は、Gabor Wavelet記述子を使用する別のオープンソースの顔認識ソフトウェアです。ただし、ソースの最後の更新は3年前です。
ウェブサイトから: "Malicは、ガボールウェーブレットを使用するオープンソースの顔認識ソフトウェアです。MalibおよびCSU顔識別評価システム(csuFaceIdEval)に基づくリアルタイム顔認識システムです。リアルタイム画像にMalibライブラリを使用します。処理と顔認識のためのcsuFaceIdEvalの一部。 "
さらに、これは興味深いかもしれません:
gaborboosting :Gabor WaveletとAdaBoostアルゴリズムによる顔認識に適用される科学プログラム
Eigenface は、すでに行っていることですが、顔間の距離を計算する場合の方法です。 Support Vector Machine または Hidden Markov Model のようなさまざまなアプローチを試すことができます。顔認識に使用できる主要なアルゴリズムをリストしたページを見つけました: Face Recognition Homepage 。
また、「パフォーマンスの向上」と言うとき、速度または精度を意味しますか?どのような問題がありますか?データはどの程度変化していますか?ほとんど正面の顔ですか、それともプロファイルが含まれていますか?
プロジェクトが映画やテレビ、またはスクリプトのあるものであれば、 Mark Everinghametal。 。ソフトウェアは 利用可能 であり、 Buffyエピソードの結果 です。
http://libccv.org/ をご覧ください
これはかなり新しいものですが、顔検出用の無料のオープンソースの高レベルAPIを提供します。
(...そして、私はあえて言うと、驚くほど素晴らしいです)
編集:これはopencvに依存しない数少ないライブラリの1つであり、キックのためだけに、ドキュメントページから顔検出のためのコードのコピーがあり、関連するもののアイデアを提供することに注意してください:
#include <ccv.h>
int main(int argc, char** argv)
{
ccv_dense_matrix_t* image = 0;
ccv_read(argv[1], &image, CCV_IO_GRAY | CCV_IO_ANY_FILE);
ccv_bbf_classifier_cascade_t* cascade = ccv_load_bbf_classifier_cascade(argv[2]); ccv_bbf_params_t params = { .interval = 8, .min_neighbors = 2, .accurate = 1, .flags = 0, .size = ccv_size(24, 24) };
ccv_array_t* faces = ccv_bbf_detect_objects(image, &cascade, 1, params);
int i;
for (i = 0; i < faces->rnum; i++)
{
ccv_comp_t* face = (ccv_comp_t*)ccv_array_get(faces, i);
printf("%d %d %d %d\n", face->rect.x, face->rect.y, face->rect.width, face->rect.y);
}
ccv_array_free(faces);
ccv_bbf_classifier_cascade_free(cascade);
ccv_matrix_free(image);
return 0;
}
しばらく経ちましたが、興味のある人には Faint プロジェクトがあり、これらの機能(検出、認識など)の多くがNiceソフトウェアパッケージにバンドルされています。
OpenCV を使用しています。そこにはlotsの非顔認識機能もありますが、安心して顔認識を行います。
MVGライブラリを開くことができます。複数のインターフェイスにも使用できます。
探しているものではありませんが、役に立つかもしれません。 顔検出/コンピュータービジョン MATLABのアルゴリズム。
次のステップはFisherFacesです。それを試して、それらがあなたのために働くかどうか確認してください。 ここ はすてきな比較です。