Указание модели распознавания лиц

Внимание

Доступ к службе "Распознавание лиц" ограничен на основе соответствия требованиям и критериев использования для реализации поддержки наших принципов ответственного ИИ. Служба "Распознавание лиц" доступна только для клиентов и партнеров, управляемых корпорацией Майкрософт. Используйте форму приема Распознавания лиц, чтобы подать заявку на доступ. Дополнительные сведения см. на странице с ограниченным доступом для лиц.

В этом руководстве показано, как указать модель распознавания лиц для обнаружения лиц, идентификации и сходства с помощью службы распознавания лиц Azure.

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

Совместимость моделей

Служба распознавания лиц Azure имеет четыре модели распознавания. Модели recognition_01 (опубликовано 2017), recognition_02 (опубликовано 2019) и recognition_03 (опубликовано 2020) постоянно поддерживаются для обеспечения обратной совместимости для клиентов, использующих FaceLists или PersonGroup, созданных с этими моделями. FaceList или PersonGroup всегда использует созданную модель распознавания, а новые лица становятся связанными с этой моделью при добавлении. Это невозможно изменить после создания, и клиентам необходимо использовать соответствующую модель распознавания с соответствующим FaceList или PersonGroup.

Вы можете перейти к использованию более поздних моделей распознавания. Тем не менее вам потребуется создать новые объекты FaceList и PersonGroup с любой моделью распознавания.

Модель recognition_04 (опубликована в 2021 г.) — это самая точная модель, доступная в настоящее время. Если вы являетесь новым клиентом, рекомендуем использовать именно эту модель. Recognition_04 обеспечивает улучшенную точность для сравнения сходства и сравнения сопоставления с пользователем. Recognition_04 улучшает распознавание зарегистрированных пользователей в масках (хирургических, № 95, тканевых). Теперь вы можете создавать надежные и удобные возможности работы для пользователей, позволяющие определить, носит ли зарегистрированный пользователь маску на лице, с помощью последней модели detection_03. Затем вы можете использовать последнюю модель recognition_04 для распознавания их личности. Каждая модель работает независимо от других, а порог достоверности, заданный для одной модели, не предназначен для сравнения с другими моделями распознавания.

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

Необходимые компоненты

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

Определение лиц с помощью указанной модели

Функция определения лиц выявляет визуальные ориентиры лиц людей и находит для них границы ограничивающих прямоугольников. Он также извлекает функции лица и сохраняет их временно до 24 часов для использования в идентификации. Все эти сведения образуют представление одного лица.

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

При использовании API Face - Detect можно назначить версию модели с помощью параметра recognitionModel. Возможные значения:

  • recognition_01
  • recognition_02
  • recognition_03
  • recognition_04

При необходимости можно задать параметр returnRecognitionModel (по умолчанию — false), чтобы указать, следует ли возвращать в ответе recognitionModel. Итак, URL-адрес запроса для REST API Face - Detect будет выглядеть следующим образом:

https://westus.api.cognitive.microsoft.com/face/v1.0/detect[?returnFaceId][&returnFaceLandmarks][&returnFaceAttributes][&recognitionModel][&returnRecognitionModel]&subscription-key=<Subscription key>

Если вы используете клиентскую библиотеку, можно присвоить значение recognitionModel, передав строку, представляющую версию. Если не назначать это значение, будет использоваться версия модели по умолчанию recognition_01. См. следующий пример кода для клиентской библиотеки .NET.

string imageUrl = "https://news.microsoft.com/ceo/assets/photos/06_web.jpg";
var faces = await faceClient.Face.DetectWithUrlAsync(url: imageUrl, returnFaceId: true, returnFaceLandmarks: true, recognitionModel: "recognition_01", returnRecognitionModel: true);

Примечание.

Для включения сценариев распознавания лиц в последующих шагах необходимо задать true параметр returnFaceId.

Определение лиц с помощью указанной модели

Служба распознавания лиц может извлекать данные о лицах из изображения и связывать их с объектом Person (например, посредством вызова API Add Face). Несколько объектов Person можно хранить вместе в объекте PersonGroup. Затем новое лицо можно сравнить с объектом PersonGroup (путем вызова Face - Identity), после чего можно будет идентифицировать совпадающего пользователя в этой группе.

Объект PersonGroup должен иметь одну уникальную модель распознавания для всех объектов Person. Указать ее можно с помощью параметра recognitionModel при создании группы (PersonGroup - Create или LargePersonGroup - Create). Если этот параметр не задан, будет использоваться исходная модель recognition_01. Группа всегда будет использовать модель распознавания, с которой он был создан, а новые лица при добавлении будут связываться с этой моделью. Его нельзя изменить после создания группы. Чтобы узнать, с какой моделью настроена группа PersonGroup, используйте API PersonGroup - Get с параметром returnRecognitionModel, для которого задано значение true.

См. следующий пример кода для клиентской библиотеки .NET.

// Create an empty PersonGroup with "recognition_04" model
string personGroupId = "mypersongroupid";
await faceClient.PersonGroup.CreateAsync(personGroupId, "My Person Group Name", recognitionModel: "recognition_04");

В этом коде создается группа PersonGroup с идентификатором mypersongroupid, после чего для нее настраивается использование модели recognition_04 для извлечения характеристик лиц.

Соответственно, необходимо указать, какую модель следует использовать при обнаружении лиц для сравнения с этой группой PersonGroup (с помощью API Face - Detect). Используемая модель всегда должна соответствовать конфигурации PersonGroup. В противном случае операция завершится ошибкой из-за несовместимости моделей.

В API Face - Identity нет изменений; необходимо только указать версию модели, для которой выполняется обнаружение.

Поиск похожих лиц с указанной моделью

Можно также указать модель распознавания для поиска сходства. Версию модели можно назначить с помощью recognitionModel при создании объекта FaceList с использованием API FaceList - Create API или LargeFaceList - Create. Если этот параметр не задан, по умолчанию используется модель recognition_01. Объект FaceList всегда будет использовать модель распознавания, с которой он был создан, а новые лица при добавлении будут связываться с этой моделью. После создания это изменить нельзя. Чтобы узнать, с какой моделью настроен объект FaceList, используйте API FaceList - Get с параметром returnRecognitionModel, для которого задано значение true.

См. следующий пример кода для клиентской библиотеки .NET.

await faceClient.FaceList.CreateAsync(faceListId, "My face collection", recognitionModel: "recognition_04");

Этот код создает объект FaceList с именем My face collection, используя модель recognition_04 для извлечения характеристик. При поиске в этом объекте FaceList лиц, похожих на новое обнаруженное лицо, такое лицо можно обнаружить (Face - Detect) с помощью модели recognition_04. Как и в предыдущем разделе, модель должна быть согласованной.

В API Face - Find Similar нет изменений; необходимо только указать версию модели, для которой выполняется обнаружение.

Проверка лиц с помощью указанной модели

API Face - Verify проверяет, принадлежат ли два лица одному и тому же человеку. В API проверки нет изменений в плане моделей распознавания, однако можно сравнивать только те лица, которые были обнаружены с помощью одной и той же модели.

Оценка различных моделей

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

  1. Создайте четыре объекта PersonGroupс помощью recognition_01, recognition_02, recognition_03 и recognition_04 соответственно.
  2. Используйте данные изображений для обнаружения лиц и зарегистрируйте их с объектами Person в этих четырех PersonGroup.
  3. Обучение пользователей с помощью API PersonGroup— обучение API.
  4. Выполните тестирование всех четырех PersonGroup с помощью Face — Identity и сравните результаты.

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

Следующие шаги

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