iPhone で顔認証を行う方法を教えてください。誰かが私を正しい方向に向けるための参照/記事を提供してもらえますか? 私は調査を行い、最初に顔検出を行って画像を抽出し、次にデータベース内の他の画像と比較して顔認識を行う必要があることに気付きました。
OpenCVを使用するか、iOS 5.0以降を使用して顔を検出することで、顔検出を行ったことに気付きました。顔認識についてはよくわかりません (画像をリモート データベースに保存し、リモート データベースと比較する予定です)。
iPhone で顔認証を行う方法を教えてください。誰かが私を正しい方向に向けるための参照/記事を提供してもらえますか? 私は調査を行い、最初に顔検出を行って画像を抽出し、次にデータベース内の他の画像と比較して顔認識を行う必要があることに気付きました。
OpenCVを使用するか、iOS 5.0以降を使用して顔を検出することで、顔検出を行ったことに気付きました。顔認識についてはよくわかりません (画像をリモート データベースに保存し、リモート データベースと比較する予定です)。
顔検出
オープン CV で利用可能な Haarcascades を使用して、迅速かつ正確な顔検出を実行します。
http://opencv.willowgarage.com/wiki/FaceDetection
顔認識
主成分分析 (PCA) 別名 eigenfaces などの方法を使用します。
http://www.cognotics.com/opencv/servo_2007_series/part_5/index.html
そのリンクは、OpenCVでそれを機能させる方法に関するチュートリアルを示しています-これはC用に書かれていると思いますが、基本的な要点を理解できると確信しています。
勇気があれば、自分で実装することもできます (それほど悪くはありません)...
http://www.face-rec.org/algorithms/PCA/jcn.pdf
http://blog.zabarauskas.com/eigenfaces-tutorial/
データベース
iPhoneではなくPCでも同じコンセプトですが、私は実際にあなたと似たようなことをしました。すべての画像を Blob データ型としてデータベースに保存し、必要に応じてプログラムにロードしました。
編集
データベースは、システムの中で特に注意が必要な部分です。ここが最大のボトルネックになるからです。私のアプリケーションでは、次の手順を実行します...
幸いなことに、私のデータベース サーバーは LAN 上にあったため、速度は問題ではありませんでしたが、モバイル デバイスではデータ接続 (速度/帯域幅) が制限されているため、問題が発生する理由はわかります。画像を圧縮することはできますが、画質が低下し、デバイスでデコードする必要があるため、認識率が低下する可能性があります。リモート データベースをアプリケーションに公開する方法の問題もありますが、これは PHP と JSON (およびその他のテクノロジ、以下を参照) を使用して可能であると信じています。
画像が電話にキャッシュされるように、データベースとの最初の同期を行うことができますか? どういうわけか、あなたはおそらくある時点で電話に画像を持っている必要があると思います.
認識データ/画像をデータベースに保存する最善の方法を見つけることは、私が直面した最大の課題の 1 つでした。良い方法が見つかったら、ぜひ聞いてみたいと思います。
ご指摘のとおり、iOS 5以降では、最初のステップ(顔の検出)は簡単CoreImage.framework
です。簡単な例:
CIImage *image = [CIImage imageWithCGImage:image_ref];
NSDictionary *options = [NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh forKey:CIDetectorAccuracy];
CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeFace context:nil options:options];
NSArray *features = [detector featuresInImage:image];
for (CIFaceFeature *feature in features)
{
CGRect face_bounds = [feature bounds];
CGPoint mouth_position = [feature mouthPosition];
// do something with these values
}
あなたの質問の2番目の部分(つまり顔認識)に関しては、私よりも資格のある人に答えてもらいます。:)
あなたはおそらく、OpenCVを使用してiOS5で顔認識を実行するPedroCentieiroによるmidianプロジェクトを見たいと思うでしょう。githubの次の場所にあります:
libfacerecの一部を使用しているため、顔認識用の固有顔、フィッシャーフェイス、ローカルバイナリパターンヒストグラムをサポートしています。
顔認識は、機械学習アルゴリズムとして実装できます。このマニュアルには、このタスクとその実装方法を説明する章があります。一読の価値あり!
単一値分解(SVD)、より具体的にはTensor SVD メソッドを使用します。
次の顔認識 API があります:-
1. OpenCV
2. Kairos
3. CraftarAR
4. AAFaceDetection
5. MoodMe
そして、私の意見CraftAR
では、オフライン アプリケーションで使用する場合は適切であり、オンラインで使用する場合Kairos
は最適です。WhileOpenCV
も有名で信頼できるオプションです。
OPENCV の最大の利点は、オープン ソースであることです。
これらを Google で検索して詳細を確認し、github の例を見て、これらの API がどのように機能するかを確認してください。