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

Осторожно

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

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

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

Необходимые условия

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

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

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

Вы можете перейти к более поздним моделям распознавания по своему усмотрению; однако вам потребуется создать новые FaceLists и PersonGroups с выбранной моделью распознавания.

Рекомендации по модели

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

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

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

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

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

При использовании API обнаружения назначьте версию модели с параметром recognitionModel . Доступные значения:

  • recognition_01
  • recognition_02
  • recognition_03
  • recognition_04

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

https://westus.api.cognitive.microsoft.com/face/v1.0/detect?detectionModel={detectionModel}&recognitionModel={recognitionModel}&returnFaceId={returnFaceId}&returnFaceAttributes={returnFaceAttributes}&returnFaceLandmarks={returnFaceLandmarks}&returnRecognitionModel={returnRecognitionModel}&faceIdTimeToLive={faceIdTimeToLive}

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

string imageUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection1.jpg";
var response = await faceClient.DetectAsync(new Uri(imageUrl), FaceDetectionModel.Detection03, FaceRecognitionModel.Recognition04, returnFaceId: true, returnFaceLandmarks: true, returnRecognitionModel: true);
var faces = response.Value;

Примечание

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

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

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

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

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

// Create an empty PersonGroup with "recognition_04" model
string personGroupId = "mypersongroupid";
using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["name"] = "My Person Group Name", ["recognitionModel"] = "recognition_04" }))))
{
    content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    await httpClient.PutAsync($"{ENDPOINT}/face/v1.0/persongroups/{personGroupId}", content);
}

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

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

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

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

Можно также указать модель распознавания для поиска сходства. Вы можете назначить версию модели с помощью recognitionModel при создании FaceList с помощью API Create Face List или Create Large Face List. Если этот параметр не указан, recognition_01 модель используется по умолчанию. FaceList всегда будет использовать модель распознавания, с которой она была создана, и новые лица будут связаны с этой моделью при добавлении в список; Это невозможно изменить после создания. Чтобы узнать, с какой моделью настроен FaceList , используйте API get Face List с параметром returnRecognitionModel как true.

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

using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["name"] = "My face collection", ["recognitionModel"] = "recognition_04" }))))
{
    content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    await httpClient.PutAsync($"{ENDPOINT}/face/v1.0/facelists/{faceListId}", content);
}

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

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

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

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

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

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

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

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

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

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