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

Вступление

Два года назад с iPhone X Apple представила новый вид камеры и биометрического устройства. Он называется Камера TrueDepth и содержит точечный инфракрасный проектор, который распознает вас, нанося на ваше лицо 30 000 невидимых точек. Благодаря этой точности мы также можем распознавать различные движения лица. Сегодня я покажу вам, насколько это просто!

Начиная

Сначала откройте Xcode и создайте новый проект Xcode. Обязательно выберите приложение дополненной реальности под iOS.

Теперь перейдите кMain.storyboardfile и добавьте в него UIView и Label. Это покажет наш текстовый вывод.

Создайте два новых выхода: один для представления, а другой - для метки вывода.

Перейдите в файлViewController.swift и замените метод viewDidLoad следующим кодом. Это проще, чем тот, который создается автоматически, и его достаточно для того, что мы пытаемся достичь сегодня.

Теперь остановимся на методе viewWillAppear. Нам нужно будет изменить ARWorldTrackingConfiguration() в ARFaceTrackingConfiguration(). Первый используется для дополненной реальности, но в данном случае он нам не нужен; мы хотим использовать технологию отслеживания лиц.

Затем добавьте следующий код: // MARK: - ARSCNViewDelegatecomment. Первая часть этого кода, вызываемая при ARSCNViewis rendered, создаст трехмерную геометрию лица и поместит ее на лицо пользователя. Вторая часть, вызываемая каждый раз при обновлении sceneView, обновляет точки привязки трехмерных граней.

Запустите приложение, и вы увидите что-то похожее на это:

Время веселья

Хорошо, теперь наше лицо покрыто маской из линий, но что мы можем с ней сделать?

Прежде всего, добавьте глобальную строковую переменную и назовите itfacePoseResult. Затем обновите метод renderer(_didUpdate:) следующим кодом:

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

Запускаем приложение и должен быть результат!

Полный код

Вы можете найти полный код на GitHub.

Заключение

Изучите все доступные BlendShapes и попробуйте добавить больше смайлов, основанных на вашем собственном выражении лица! Помните, что каждая фигура возвращает разные значения (иногда неожиданные), поэтому обратитесь к документации Apple или установите точку останова в своем коде, чтобы лучше понять, какие значения следует использовать.

Спасибо за чтение. Если у вас есть вопросы или предложения, дайте мне знать в комментариях.