Раскройте возможности отслеживания лица, чтобы распознать выражение лица пользователя и преобразовать его в эмодзи.
Вступление
Два года назад с iPhone X Apple представила новый вид камеры и биометрического устройства. Он называется Камера TrueDepth и содержит точечный инфракрасный проектор, который распознает вас, нанося на ваше лицо 30 000 невидимых точек. Благодаря этой точности мы также можем распознавать различные движения лица. Сегодня я покажу вам, насколько это просто!
Начиная
Сначала откройте Xcode и создайте новый проект Xcode. Обязательно выберите приложение дополненной реальности под iOS.
Теперь перейдите кMain.storyboard
file и добавьте в него UIView и Label. Это покажет наш текстовый вывод.
Создайте два новых выхода: один для представления, а другой - для метки вывода.
Перейдите в файлViewController.swift
и замените метод viewDidLoad
следующим кодом. Это проще, чем тот, который создается автоматически, и его достаточно для того, что мы пытаемся достичь сегодня.
Теперь остановимся на методе viewWillAppear
. Нам нужно будет изменить ARWorldTrackingConfiguration()
в ARFaceTrackingConfiguration()
. Первый используется для дополненной реальности, но в данном случае он нам не нужен; мы хотим использовать технологию отслеживания лиц.
Затем добавьте следующий код: // MARK: - ARSCNViewDelegate
comment. Первая часть этого кода, вызываемая при ARSCNViewis rendered
, создаст трехмерную геометрию лица и поместит ее на лицо пользователя. Вторая часть, вызываемая каждый раз при обновлении sceneView
, обновляет точки привязки трехмерных граней.
Запустите приложение, и вы увидите что-то похожее на это:
Время веселья
Хорошо, теперь наше лицо покрыто маской из линий, но что мы можем с ней сделать?
Прежде всего, добавьте глобальную строковую переменную и назовите itfacePoseResult
. Затем обновите метод renderer(_didUpdate:)
следующим кодом:
Наконец, добавьте метод thefacePoseAnalyzer
, который будет вызываться при каждом обновлении и обрабатывать наши выражения лица. Затем он обновит метку аналогичным смайликом.
Запускаем приложение и должен быть результат!
Полный код
Вы можете найти полный код на GitHub.
Заключение
Изучите все доступные BlendShapes и попробуйте добавить больше смайлов, основанных на вашем собственном выражении лица! Помните, что каждая фигура возвращает разные значения (иногда неожиданные), поэтому обратитесь к документации Apple или установите точку останова в своем коде, чтобы лучше понять, какие значения следует использовать.
Спасибо за чтение. Если у вас есть вопросы или предложения, дайте мне знать в комментариях.