2012-06-16 2 views
1

Мое приложение имеет возможность хранить пароли. Но это важные пароли, поэтому я не хочу, чтобы пользователь был взломан. Я думал о возможности использовать распознавание лиц, а не отвечать на вопросы безопасности или код доступа для входа. Я в порядке с последними двумя вариантами, просто застрял в распознавании лица.Как распознать одно лицо?

У меня есть представление в виде полного вида камеры.

Как я могу выполнить распознавание лиц, есть ли там API или какой-нибудь пример кода? Как я могу убедиться, что это одно и то же лицо, которое я вижу?

Последнее, что удерживает изображение, распознающее лицо?

ответ

1

Распознавание лиц - это плохая идея для хранения | восстановить любые важные данные ...

Даже если у вас есть лучший алгоритм распознавания, простая картина может сломать вашу безопасность!

Но ... отвечая на ваш вопрос, Apple выпустила API распознавания лиц для iOS 6 ... для более старых iOS, вам, вероятно, придется создать свой собственный алгоритм.

Алгоритмы распознавания лиц обычно основаны на расстоянии глаз, бровь, носовой точки и рта.

+0

действительно? Я разработчик, у меня есть Xcode 4.5, вы могли бы привести меня к какой-то документации? – MCKapur

+2

Вы можете здесь что-то проверить: https://developer.apple.com/library/prerelease/ios/#documentation/AVFoundation/Reference/AVMetadataFaceObject_Class/Reference/Reference.html#//apple_ref/occ/instp/AVMetadataFaceObject/faceID Или здесь: https://developer.apple.com/library/prerelease/ios/#documentation/CoreImage/Reference/CIFaceFeature/Reference/Reference.html#//apple_ref/doc/uid/TP40010976 –

+1

Но ... как я уже сказал , Я не думаю, что это хорошая идея для восстановления паролей ... может быть, приятная глазная конфета, но очень неуверенная! –

2

Вы можете использовать API face.com и отправить им фотографию для распознавания. Я считаю, что они извлекают данные из Facebook для распознавания лиц, поэтому вам может понадобиться ваш пользователь для подключения Facebook. Проверьте документы для себя.

Полное раскрытие информации: face.com дал мне футболку один раз.

Да, при поднятии изображения распознается лицо.

+0

Хорошо, но что, если у пользователя нет фотографий профиля на Facebook самого себя или буквально нет Facebook .... – MCKapur

+0

То, что я хочу сделать, это просто узнать, является ли это одним и тем же лицом. – MCKapur

+0

Пользователь регистрирует свое лицо в начале, мне нужно проверить, когда пользователь снова откроет приложение, если это одно и то же лицо. У меня была идея, чтобы сохранить эти две вещи по умолчанию пользователя: расстояние между глазами и расстояние между левым глазом и ртом и расстояние между правым глазом и ртом. Это будет каждый раз каждый раз? Должно быть правильно ... – MCKapur

0

Я недавно прошел это упражнение, если вы хотите использовать базовые возможности, предлагаемые каркасом Apple, вы используете CIDetector с типом CIDetectorTypeFace, а затем перебираете возвращаемый массив CIFaceFeatures. Я создал STRUCT называется Особенности хранения глаз и рта позиции:

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 
      . 
      . 
      . 

После того, как база лицо координирует вы можете сравнить расстояния между глазами и ртом и решить, на какой процент является матч. Вы можете добавить обнаружение мигания, чтобы убедиться, что это человек, а не скопированное изображение. Но это тема для другой темы