【发布时间】:2012-06-19 01:13:44
【问题描述】:
我的应用可以存储密码。但这些都是重要的密码,所以我不希望用户被黑客入侵。我想能够使用面部识别,而不是回答安全问题或输入密码。我对最后两个选项很好,只是停留在面部识别上。
我已将视图设置为完整的相机视图。
如何执行面部识别,是否有 API 或一些示例代码?如何确定我看到的是同一张脸?
最后一件事,举起一张照片会认出人脸吗?
【问题讨论】:
标签: objective-c ios xcode face-recognition
我的应用可以存储密码。但这些都是重要的密码,所以我不希望用户被黑客入侵。我想能够使用面部识别,而不是回答安全问题或输入密码。我对最后两个选项很好,只是停留在面部识别上。
我已将视图设置为完整的相机视图。
如何执行面部识别,是否有 API 或一些示例代码?如何确定我看到的是同一张脸?
最后一件事,举起一张照片会认出人脸吗?
【问题讨论】:
标签: objective-c ios xcode face-recognition
我最近完成了这个练习,如果你想使用 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
.
.
.
获得基本面的坐标后,您可以比较眼睛和嘴巴之间的距离,并确定匹配的百分比。您可以添加眨眼检测以确保它是一个人而不是复制的图像。但这是另一个主题的主题
【讨论】:
您可以使用 face.com API 并将照片发送给他们以进行识别。我相信他们从 Facebook 提取数据用于面部识别,因此您可能需要您的用户连接到 Facebook。自己查看文档。
完全披露:face.com 曾经给过我一件 T 恤。
是的,举起一张照片就能识别人脸。
【讨论】:
面部识别存储是个坏主意 |恢复任何类型的重要数据……
即使你有最好的识别算法,一张简单的图片也能破坏你的安全!
但是……回答您的问题,Apple 已经发布了适用于 iOS 6 的人脸识别 API……对于较旧的 iOS,您可能必须创建自己的算法。
面部识别算法通常基于眼睛、眉毛、鼻尖和嘴巴的距离。
【讨论】: