まずはCoreImage.frameworkをプロジェクトに追加します。
顔認識の方法は以下の通りです。
CIDetectorのfeaturesInImageメソッドで画像解析をします。
戻り値として顔・目・口の位置や、顔の角度などを取得できます。
trackingIDは動画を解析する際に、顔を見分ける為に使われるIDだと思われます。
import CoreImage let imageData = NSData(contentsOfURL: NSURL(string: "画像のURL")!) let image = UIImage(data: imageData!)! let ciImage = CIImage(image: image)! let detector = CIDetector(ofType: CIDetectorTypeFace, context: nil, options: nil) let features = detector.featuresInImage(ciImage) print(features) // 複数の顔がある場合はfeaturesにも複数の要素がセットされる (features as? [CIFaceFeature])?.forEach { print($0.bounds) // yの位置が上下判定しているので注意!! print($0.hasLeftEyePosition) print($0.leftEyePosition) print($0.hasRightEyePosition) print($0.rightEyePosition) print($0.hasMouthPosition) print($0.mouthPosition) print($0.hasTrackingID) print($0.trackingID) print($0.hasTrackingFrameCount) print($0.trackingFrameCount) print($0.hasFaceAngle) print($0.faceAngle) print($0.hasSmile) print($0.leftEyeClosed) print($0.rightEyeClosed) }
認識の精度はかなり良く、正確な位置を示してくれました。