私は最近、この演習を行いました。Apple フレームワークによって提供される基本的な機能を使用する場合は、CIDetectorTypeFace タイプの CIDetector を使用し、返された CIFaceFeatures 配列を反復処理します。目と口の位置を格納する Features という構造体を作成しました。
CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeFace
context:nil options: [NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh forKey:CIDetectorAccuracy]];
NSArray* features = [detector featuresInImage:image];
Features *face = [[Features alloc] init]; //simple struct with 3 face points
for( CIFaceFeature* faceFeature in features)
{
//use _faceView to compare view of 2nd image as one will have to be scaled to the others size
_faceView = [[UIView alloc] initWithFrame:faceFeature.bounds];
if(faceFeature.hasLeftEyePosition)
{
face.leftEye = faceFeature.leftEyePosition;
// do the same for face.rightEye, and face.Mouth
.
.
.
ベースの顔の座標を取得したら、目と口の間の距離を比較して、一致するパーセンテージを決定できます。まばたき検出を追加して、コピーされた画像ではなく人物であることを確認できます。しかし、それは別のスレッドのトピックです