Около месяца назад я видел сообщение @markstiles об интеграции между Sitecore и Microsoft Cognitive Services. Я был действительно впечатлен тем, насколько интеллектуально вы можете создать свою сборку sitecore.



«Когнитивные службы Sitecore
Вот уже несколько лет я работаю над повышением осведомленности о том, как машинное обучение можно использовать с Sitecore для создания Интернета… www.markstiles .сеть"



Итак, я подумал - хорошо, есть одна вещь, о которой здесь не говорится, - распознавание лиц. Microsoft предоставляет отличный API, который я собираюсь использовать в этой статье, чтобы показать, как добавить поддержку распознавания лиц в стиле Facebook на ваш веб-сайт.

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

Если вас не интересуют примечания по реализации, вы можете пропустить эту часть. Я планирую выпустить модуль как пакет Sitecore, и в следующей статье расскажу, как его настроить. Так что следите за обновлениями!

Шаг 1. Определите лица

Для начала нам нужно определить лица на фотографиях. Для этого я решил расширить шаблон изображения в Sitecore для хранения информации об обнаруженных лицах.

Затем, когда мы загружаем новую фотографию, мы сохраняем ее в медиатеке и вызываем конвейер, который совершает некоторую магию распознавания лиц.

Чтобы обнаружить лица на изображении, мы вызовем метод« Обнаружить » FaceAPI на изображении.

Шаг 2. Давайте создадим репозиторий людей для идентификации

В API Azure Face используются понятия «люди» и «группа лиц». У каждого человека есть назначенные ему лица. Таким образом Face API узнает, как идентифицировать человека. Но чтобы научить Face API использовать эти изображения, нам нужно обучить группу людей, с которой связан этот человек.

Мы создадим иерархию людей и групп людей в Sitecore, но синхронизируем ее с Face API с помощью обработчика item: saved.

Теперь у нас есть информация о наших кандидатах на обнаружение в базе данных API Azure Face. Но мы до сих пор не знаем, как они выглядят.

Шаг 3. Предоставьте Face API информацию о лицах

Теперь, когда у нас есть информация о лицах на изображении (а также информация о кандидатах на обнаружение), мы можем использовать ее, чтобы позволить пользователям идентифицировать пользователей на фотографии. Таким образом, пользователи сами расскажут Face API, как распознать лицо на фотографии.

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

Ура! Теперь у нас есть все данные, чтобы идентифицировать людей на фотографиях.

Что дальше?

Шаг 4. Обучите FaceAPI, используя наши данные

Теперь у нас есть все данные. Но наши данные FaceAPI еще не обучены. Для этого я создал специальную команду, которую буду вызывать с ленты Sitecore.

Это вызовет FaceAPI и вызовет операцию« Обучение » для PersonGroup.

Теперь наш гениальный FaceAPI обучен идентифицировать людей, так что лучше воспользуйтесь им!

Шаг 5. Внедрите поисковый индекс, который будет идентифицировать человека с помощью Face API

FaceAPI имеет собственные ограничения на использование, поэтому лучше всего делать как можно меньше обращений к API. Для этого мы создадим индекс пользовательского поиска, в котором будет храниться информация об идентифицированных лицах на фотографии.

Чтобы идентифицировать лицо, мы будем вызывать операцию« Идентификация » на лице.

Обычно индекс просматривает каждую фотографию в медиатеке и вызывает FaceAPI для идентификации всех лиц на фотографии.

Последний шаг: обучите FaceAPI и покажите информацию о теге

Теперь у нас почти все на месте. У нас есть данные об идентифицированных лицах в индексе. Поэтому последнее, что нам нужно сделать, это показать это на изображении.

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

Вот и все! Это работает!

Все на месте. Захватывающе! Посмотрим на результаты прямо сейчас!

Спасибо за чтение!