Подтвердить что ты не робот

Распознавание лиц на iPhone

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

Я понял, что у меня есть обнаружение лица с помощью OpenCV или с помощью iOS 5.0 и выше, чтобы обнаружить лицо. Я не уверен в распознавании лиц (я планирую хранить изображения в удаленной базе данных, а затем выполнять сравнение с удаленной базой данных).

4b9b3361

Ответ 1

Распознавание лиц

Я бы использовал Haarcascades в открытом CV для быстрого и точного распознавания лиц.

http://opencv.willowgarage.com/wiki/FaceDetection

Распознавание лиц

Я бы использовал такой метод, как основные свойства компонентного анализа (PCA) a.k.a.

http://www.cognotics.com/opencv/servo_2007_series/part_5/index.html

Эта ссылка показывает учебное пособие о том, как работать с OpenCV - я думаю, что это написано для C, но я уверен, что вы можете получить основной смысл этого.

Вы также можете взглянуть на его реализацию, если почувствуете себя храбрым (это не так уж плохо)...

http://www.face-rec.org/algorithms/PCA/jcn.pdf

http://blog.zabarauskas.com/eigenfaces-tutorial/

База данных

Я действительно сделал что-то похожее на вас, хотя на ПК не iPhone, но его по-прежнему та же концепция. Я сохранил все мои изображения в базе данных в виде типов данных Blob, затем загрузил их в свою программу, когда это необходимо.

Edit

База данных - особенно сложная часть системы, так как это самое большое узкое место. В моем приложении я бы выполнил следующие шаги...

  • Откройте приложение и возьмите обучающие изображения из базы данных.
  • Создание набора тренировок на основе этих изображений
  • Как только 1 и 2 завершены, система работает очень быстро, так как она просто выполняет распознавание по сравнению с набором тренировок.

К счастью для меня, мой сервер базы данных находился в локальной сети, поэтому скорость не была проблемой, однако я могу понять, почему у вас есть проблема из-за того, что на мобильном устройстве у вас ограниченное соединение с данными (скорость/пропускная способность). Вы можете сжимать изображения, однако это может привести к снижению скорости распознавания из-за уменьшения качества изображения, а также вам придется декодировать на устройстве. Существует также вопрос о том, как открыть удаленную базу данных для приложения, однако я считаю, что это возможно с использованием PHP и JSON (и других технологий, см. Ниже).

Извлечение данных из удаленной базы данных

Возможно, вы могли бы выполнить первоначальную синхронизацию с базой данных, чтобы изображения были кэшированы на телефоне? Так или иначе, я думаю, что вам, вероятно, придется когда-нибудь делать изображения на телефоне.

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

Ответ 2

Как вы указали, первый шаг (обнаружение лица) легко с iOS 5 и CoreImage.framework. Быстрый пример:

CIImage *image = [CIImage imageWithCGImage:image_ref];
NSDictionary *options = [NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh forKey:CIDetectorAccuracy];
CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeFace context:nil options:options];
NSArray *features = [detector featuresInImage:image];

for (CIFaceFeature *feature in features)
{
  CGRect face_bounds = [feature bounds];
  CGPoint mouth_position = [feature mouthPosition];
  // do something with these values
}

Что касается второй части вашего вопроса (например, распознавания лиц), я оставлю это кому-то более квалифицированному, чем я, чтобы ответить.:)

Ответ 3

Вероятно, вы захотите посмотреть проект midian от Pedro Centieiro, который выполняет Face Recognition на iOS 5 с OpenCV. Он на github по адресу:

Он использует части моего libfacerec, поэтому он поддерживает гистограммы собственных, гистограмм и локальных двоичных паттернов для распознавания лиц.

Ответ 4

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

Он использует декомпозицию одиночного значения (SVD), более конкретно метод тензора SVD.

Ответ 5

У нас есть распознавание лица api: -

1. OpenCV

2. Kairos

3. CraftarAR

4. AAFaceDetection

5. MoodMe

И, на мой взгляд, CraftAR хорош, если вы хотите использовать в оффлайновом приложении, и если вы хотите использовать онлайн, тогда лучше всего Kairos. Хотя OpenCV также является известным и надежным вариантом.

И самое лучшее преимущество OPENCV в том, что он с открытым исходным кодом.

Пожалуйста, найдите их в google, чтобы получить более подробную информацию, а также посмотрите примеры github, чтобы увидеть, как работают эти api.