Поделиться через


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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • detection_01
  • detection_02
  • detection_03

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

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://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection1.jpg";
var faces = await faceClient.Face.DetectWithUrlAsync(url: imageUrl, returnFaceId: false, returnFaceLandmarks: false, recognitionModel: "recognition_04", detectionModel: "detection_03");

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

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

См. следующий пример кода для клиентской библиотеки .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://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection1.jpg";
await client.PersonGroupPerson.AddFaceFromUrlAsync(personGroupId, personId, imageUrl, detectionModel: "detection_03");

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

Примечание.

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

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

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

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

string imageUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection1.jpg";
await client.FaceList.AddFaceFromUrlAsync(faceListId, imageUrl, detectionModel: "detection_03");

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

Примечание.

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

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

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