我的应用可以存储密码。但这些是重要的密码,因此我不希望用户被黑客入侵。我想到能够使用面部识别,而不是回答安全问题或输入密码。我对最后两个选项很好,只是坚持面部识别。
我已将视图设置为完整的相机视图。
如何进行面部识别,是否有API或一些示例代码?我怎样才能确定它与我看到的是同一张脸?
最后一件事,会举起一张照片识别脸部吗?
答案 0 :(得分:2)
您可以使用face.com API并向其发送照片以进行识别。我相信他们从Facebook获取数据用于面部识别,因此您可能需要您的用户进行Facebook连接。查看自己的文档。
完全披露:face.com给了我一件T恤。
是的,举起一张照片会识别出脸部。
答案 1 :(得分:1)
面部识别是一个坏主意存储|恢复任何类型的重要数据......
即使您拥有最佳识别算法,简单的图片也会破坏您的安全性!
但是......回答你的问题,Apple已经向iOS 6发布了面部识别API ......对于较旧的iOS,你可能需要创建自己的算法。
面部识别算法通常基于眼睛,眉毛,鼻尖和嘴巴距离。
答案 2 :(得分:0)
我最近经历过这个练习,如果你想使用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
.
.
.
在获得基准面的坐标后,您可以比较眼睛和嘴巴之间的距离,并确定匹配的百分比。您可以添加眨眼检测以确保它是一个人而不是复制的图像。但这是另一个主题的主题