1

我的应用程序能够存储密码。但这些都是重要的密码,所以我不希望用户被黑客入侵。我想能够使用面部识别,而不是回答安全问题输入密码。我对最后两个选项很好,只是停留在面部识别上。

我已将视图设置为完整的相机视图。

如何执行面部识别,是否有 API 或一些示例代码?我怎样才能确定它是我看到的同一张脸?

最后一件事,举起照片会认出人脸吗?

4

3 回答 3

2

您可以使用 face.com API 并将照片发送给他们以进行识别。我相信他们从 Facebook 提取数据用于面部识别,因此您可能需要您的用户连接到 Facebook。自己查看文档。

全面披露:face.com 曾经给过我一件 T 恤。

是的,举起一张照片就能认出这张脸。

于 2012-06-16T00:37:28.703 回答
1

人脸识别存储是个坏主意 | 天天要闻 恢复任何类型的重要数据……</p>

即使你有最好的识别算法,一张简单的图片也能打破你的安全!

但是……回答你的问题,Apple 已经发布了 iOS 6 的人脸识别 API……对于较旧的 iOS,你可能必须创建自己的算法。

面部识别算法通常基于眼睛、眉毛、鼻点和嘴巴的距离。

于 2012-06-16T00:13:47.560 回答
0

我最近完成了这个练习,如果你想使用 Apple 框架提供的基本功能,你可以使用 CIDetector 类型为 CIDetectorTypeFace,然后遍历返回的 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
          .
          .
          .

获得基本面的坐标后,您可以比较眼睛和嘴巴之间的距离并确定匹配的百分比。您可以添加眨眼检测以确保它是一个人而不是复制的图像。但这是另一个线程的主题

于 2016-04-20T09:14:43.107 回答