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

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

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

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

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

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

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

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

Различные модели определения лиц оптимизированы для различных задач. Общие сведения о различиях см. в следующей таблице.

Модель Description Заметки о производительности Атрибуты Достопримечательности
detection_01 Выбор по умолчанию для всех операций определения лиц. Не оптимизирована для мелких изображений лиц, изображений лиц в профиль или размытых изображений лиц. Возвращает основные атрибуты лица (положение головы, возраст, эмоций и т. д.), если они указаны в вызове обнаружения. Возвращает ориентиры для лица, если они указаны в вызове обнаружения.
detection_02 Выпущена в мае 2019 года и доступна дополнительно во всех операциях определения лиц. Улучшенная точность при обработке мелких изображений лиц, изображений лиц в профиль или размытых изображений лиц. Не возвращает атрибуты лица. Не возвращает ориентиры для лица.
detection_03 Выпущена в феврале 2021 года и доступна дополнительно во всех операциях определения лиц. Улучшенная точность, включая определение мелких изображений лиц (64 x 64 пикселей) и лиц на повернутых изображениях. Возвращает атрибуты маски и положения головы, если они указаны в вызове обнаружения. Возвращает ориентиры для лица, если они указаны в вызове обнаружения.

Лучший способ сравнить производительность моделей определения — использовать их в примере набора данных. Мы рекомендуем вызывать API Face - Detect для различных изображений, особенно для тех, на которых изображено много лиц, или лиц, которые трудно разглядеть, используя каждую модель обнаружения. Обратите внимание на количество лиц, возвращаемых каждой моделью.

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

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

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

  • detection_01
  • detection_02
  • detection_03

URL-адрес запроса для REST API Face - Detect будет выглядеть следующим образом:

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

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

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

Сопоставление лица с объектом Person с помощью указанной модели

Служба распознавания лиц может извлекать данные о лицах из изображения и связывать их с объектом Person посредством API PersonGroup Person - Add Face. В этом вызове API можно указать модель определения таким же образом, как и в Face - Detect.

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

// Create a PersonGroup and add a person with face detected by "detection_03" model
string personGroupId = "mypersongroupid";
await faceClient.PersonGroup.CreateAsync(personGroupId, "My Person Group Name", recognitionModel: "recognition_04");

string personId = (await faceClient.PersonGroupPerson.CreateAsync(personGroupId, "My Person Name")).PersonId;

string imageUrl = "https://news.microsoft.com/ceo/assets/photos/06_web.jpg";
await client.PersonGroupPerson.AddFaceFromUrlAsync(personGroupId, personId, imageUrl, detectionModel: "detection_03");

Этот код создает объект PersonGroup с идентификатором mypersongroupid и добавляет в него объект Person. Затем он добавляет к этому объекту Person лицо, используя модель detection_03. Если не указать параметр detectionModel, API будет использовать модель по умолчанию, detection_01.

Примечание.

Вам не нужно использовать одинаковую модель обнаружения для всех лиц в объекте Person, а также вам не требуется использовать ту же модель определения при обнаружении новых лиц для сравнения с объектом Person (например, в API распознавания Face - Identify).

Добавление лица в объект FaceList с помощью указанной модели

Можно также указать модель определения при добавлении лица в существующий объект FaceList. См. следующий пример кода для клиентской библиотеки .NET.

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

string imageUrl = "https://news.microsoft.com/ceo/assets/photos/06_web.jpg";
await client.FaceList.AddFaceFromUrlAsync(faceListId, imageUrl, detectionModel: "detection_03");

Этот код создает объект FaceList с именем My face collection и добавляет к нему лицо с помощью модели detection_03. Если не указать параметр detectionModel, API будет использовать модель по умолчанию, detection_01.

Примечание.

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

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

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