Especifique um modelo de reconhecimento facialSpecify a face recognition model

Este guia mostra-lhe como especificar um modelo de reconhecimento facial para deteção facial, identificação e pesquisa de semelhança utilizando o serviço Azure Face.This guide shows you how to specify a face recognition model for face detection, identification and similarity search using the Azure Face service.

O serviço Face utiliza modelos de machine learning para realizar operações em rostos humanos em imagens.The Face service uses machine learning models to perform operations on human faces in images. Continuamos a melhorar a precisão dos nossos modelos com base no feedback dos clientes e nos avanços na investigação, e entregamos estas melhorias como atualizações de modelos.We continue to improve the accuracy of our models based on customer feedback and advances in research, and we deliver these improvements as model updates. Os desenvolvedores têm a opção de especificar qual a versão do modelo de reconhecimento facial que gostariam de usar; podem escolher o modelo que melhor se adequa ao seu caso de utilização.Developers have the option to specify which version of the face recognition model they'd like to use; they can choose the model that best fits their use case.

O serviço Azure Face tem três modelos de reconhecimento disponíveis.The Azure Face service has three recognition models available. Os modelos recognition_01 (publicados em 2017) e recognition_02 (publicados em 2019) são continuamente suportados para garantir retrocompatibilidade para clientes que usam FaceLists ou PersonGroupcriados com estes modelos.The models recognition_01 (published 2017) and recognition_02 (published 2019) are continually supported to ensure backwards compatibility for customers using FaceLists or PersonGroups created with these models. Um FaceList ou Persongroup usará sempre o modelo de reconhecimento com o que foi criado, e novas caras ficarão associadas a este modelo quando forem adicionadas.A FaceList or Persongroup will always use the recognition model it was created with, and new faces will become associated with this model when they are added. Isto não pode ser alterado após a criação e os clientes terão de utilizar o modelo de reconhecimento correspondente com o FaceList ou o PersonGroupcorrespondentes.This cannot be changed after creation and customers will need to use the corresponding recognition model with the corresponding FaceList or PersonGroup.

Pode mudar-se para modelos de reconhecimento posteriores à sua própria conveniência; no entanto, terá de criar novos FaceLists e PersonGroups com o modelo de reconhecimento à sua escolha.You can move to later recognition models at your own convenience; however, you will need to create new FaceLists and PersonGroups with the recognition model of your choice.

O modelo recognition_03 (publicado em 2020) é o modelo mais preciso atualmente disponível.The recognition_03 model (published 2020) is the most accurate model currently available. Se for um novo cliente, recomendamos a utilização deste modelo.If you're a new customer, we recommend using this model. Recognition_03 proporcionará uma maior precisão tanto para comparações de semelhanças como para comparações de pessoas.Recognition_03 will provide improved accuracy for both similarity comparisons and person-matching comparisons. Note que cada modelo funciona independentemente dos outros, e um limiar de confiança definido para um modelo não deve ser comparado entre os outros modelos de reconhecimento.Note that each model operates independently of the others, and a confidence threshold set for one model is not meant to be compared across the other recognition models.

Continuar a ler Para saber como especificar um modelo selecionado em diferentes operações face, evitando conflitos de modelos.Read on to learn how to specify a selected model in different Face operations while avoiding model conflicts. Se é um utilizador avançado e gostaria de determinar se deve mudar para o modelo mais recente, salte para a secção avaliar diferentes modelos para avaliar o novo modelo e comparar resultados utilizando o seu conjunto de dados atuais.If you are an advanced user and would like to determine whether you should switch to the latest model, skip to the Evaluate different models section to evaluate the new model and compare results using your current data set.

Pré-requisitosPrerequisites

Deve estar familiarizado com os conceitos de deteção e identificação de rostos de IA.You should be familiar with the concepts of AI face detection and identification. Se não estiver, veja estes guias primeiro:If you aren't, see these how-to guides first:

Detetar rostos com modelo especificadoDetect faces with specified model

A deteção facial identifica os marcos visuais dos rostos humanos e encontra as suas localizações de caixa de delimitação.Face detection identifies the visual landmarks of human faces and finds their bounding-box locations. Também extrai as características do rosto e armazena-as para utilização na identificação.It also extracts the face's features and stores them for use in identification. Toda esta informação forma a representação de um rosto.All of this information forms the representation of one face.

O modelo de reconhecimento é utilizado quando as características do rosto são extraídas, para que possa especificar uma versão modelo ao executar a operação Deteção.The recognition model is used when the face features are extracted, so you can specify a model version when performing the Detect operation.

Ao utilizar o [Face - Detetar] API, atribua a versão do modelo com o recognitionModel parâmetro.When using the Face - Detect API, assign the model version with the recognitionModel parameter. Os valores disponíveis são:The available values are:

  • recognition_01recognition_01
  • recognition_02recognition_02
  • recognition_03recognition_03

Opcionalmente, pode especificar o parâmetro ReturnRecognitionModel (falsopredefinido) para indicar se o modelo de reconhecimento deve ser devolvido em resposta.Optionally, you can specify the returnRecognitionModel parameter (default false) to indicate whether recognitionModel should be returned in response. Assim, um URL de pedido para o [Rosto - Detect] REST API será assim:So, a request URL for the Face - Detect REST API will look like this:

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

Se estiver a utilizar a biblioteca do cliente, pode atribuir o valor recognitionModel ao passar uma cadeia que representa a versão.If you are using the client library, you can assign the value for recognitionModel by passing a string representing the version. Se o deixar sem ser atribuído, será utilizada uma versão modelo recognition_01 padrão.If you leave it unassigned, a default model version of recognition_01 will be used. Consulte o seguinte exemplo de código para a biblioteca de clientes .NET.See the following code example for the .NET client library.

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

Identificar rostos com modelo especificadoIdentify faces with specified model

O serviço Face pode extrair dados faciais de uma imagem e associá-lo a um objeto pessoa (através da chamada API face Add, por exemplo), e vários objetos pessoais podem ser armazenados juntos num PersonGroup.The Face service can extract face data from an image and associate it with a Person object (through the Add face API call, for example), and multiple Person objects can be stored together in a PersonGroup. Em seguida, um novo rosto pode ser comparado com um PersonGroup (com a chamada [Face - Identifique),] e a pessoa correspondente dentro desse grupo pode ser identificada.Then, a new face can be compared against a PersonGroup (with the Face - Identify call), and the matching person within that group can be identified.

Um PersonGroup deve ter um modelo de reconhecimento único para todos os Pessoas, e pode especiá-lo usando o recognitionModel parâmetro quando criar o grupo[(PersonGroup - Criar] ou [LargePersonGroup - Criar]).A PersonGroup should have one unique recognition model for all of the Persons, and you can specify this using the recognitionModel parameter when you create the group (PersonGroup - Create or LargePersonGroup - Create). Se não especificar este parâmetro, o modelo original recognition_01 é utilizado.If you do not specify this parameter, the original recognition_01 model is used. Um grupo usará sempre o modelo de reconhecimento com o que foi criado, e novas caras ficarão associadas a este modelo quando forem adicionadas ao mesmo; isto não pode ser alterado após a criação de um grupo.A group will always use the recognition model it was created with, and new faces will become associated with this model when they are added to it; this cannot be changed after a group's creation. Para ver com que modelo um PersonGroup está configurado, utilize o [PersonGroup - Obtenha] API com o retornadoRecognitionModel definido como verdadeiro.To see what model a PersonGroup is configured with, use the PersonGroup - Get API with the returnRecognitionModel parameter set as true.

Consulte o seguinte exemplo de código para a biblioteca de clientes .NET.See the following code example for the .NET client library.

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

Neste código, é criado um PersonGroup com mypersongroupid ID, e é configurado para utilizar o modelo recognition_02 para extrair características faciais.In this code, a PersonGroup with ID mypersongroupid is created, and it is set up to use the recognition_02 model to extract face features.

Consequentemente, é necessário especificar qual o modelo a utilizar ao detetar rostos para comparar com este PersonGroup (através do Face - Detect API).Correspondingly, you need to specify which model to use when detecting faces to compare against this PersonGroup (through the Face - Detect API). O modelo que utiliza deve ser sempre consistente com a configuração do PersonGroup; caso contrário, a operação falhará devido a modelos incompatíveis.The model you use should always be consistent with the PersonGroup's configuration; otherwise, the operation will fail due to incompatible models.

Não há alteração no [Rosto - Identificar] API; basta especificar a versão do modelo na deteção.There is no change in the Face - Identify API; you only need to specify the model version in detection.

Encontre rostos semelhantes com modelo especificadoFind similar faces with specified model

Também pode especificar um modelo de reconhecimento para pesquisa de semelhança.You can also specify a recognition model for similarity search. Pode atribuir a versão do modelo recognitionModel ao criar a lista de rostos com FaceList - Criar API ou LargeFaceList - Criar.You can assign the model version with recognitionModel when creating the face list with FaceList - Create API or LargeFaceList - Create. Se não especificar este parâmetro, o recognition_01 modelo é utilizado por predefinição.If you do not specify this parameter, the recognition_01 model is used by default. Uma lista facial usará sempre o modelo de reconhecimento com o que foi criado, e novos rostos ficarão associados a este modelo quando forem adicionados à lista; não podes mudar isto depois da criação.A face list will always use the recognition model it was created with, and new faces will become associated with this model when they are added to the list; you cannot change this after creation. Para ver com que modelo uma lista facial está configurada, utilize o [FaceList - Obtenha] API com o retornadoRecognitionModel definido como verdadeiro.To see what model a face list is configured with, use the FaceList - Get API with the returnRecognitionModel parameter set as true.

Consulte o seguinte exemplo de código para a biblioteca de clientes .NET.See the following code example for the .NET client library.

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

Este código cria uma lista de rostos chamada My face collection , utilizando o modelo recognition_03 para a extração de recursos.This code creates a face list called My face collection, using the recognition_03 model for feature extraction. Quando procura esta lista de rostos semelhantes a um novo rosto detetado, esse rosto deve ter sido detetado[(Face - Detect]) utilizando o modelo recognition_03.When you search this face list for similar faces to a new detected face, that face must have been detected (Face - Detect) using the recognition_03 model. Tal como na secção anterior, o modelo tem de ser consistente.As in the previous section, the model needs to be consistent.

Não há alteração no Rosto - Encontre API [similar;] apenas especificar a versão do modelo na deteção.There is no change in the Face - Find Similar API; you only specify the model version in detection.

Verificar rostos com modelo especificadoVerify faces with specified model

O [Rosto - Verifique se a] API verifica se duas faces pertencem à mesma pessoa.The Face - Verify API checks whether two faces belong to the same person. Não existe qualquer alteração na API de Verificação no que diz respeito aos modelos de reconhecimento, mas só é possível comparar rostos que foram detetados com o mesmo modelo.There is no change in the Verify API with regard to recognition models, but you can only compare faces that were detected with the same model.

Avaliar diferentes modelosEvaluate different models

Se quiser comparar as performances de diferentes modelos de reconhecimento nos seus próprios dados, terá de:If you'd like to compare the performances of different recognition models on your own data, you will need to:

  1. Crie três Grupos pessoais utilizando recognition_01, _recognition_02_e recognition_03 respectivamente.Create three PersonGroups using recognition_01, recognition_02, and recognition_03 respectively.
  2. Utilize os seus dados de imagem para detetar rostos e registá-los na Pessoas dentro destes três PersonGroups.Use your image data to detect faces and register them to Persons within these three PersonGroups.
  3. Treine os seus Grupos pessoais utilizando o PersonGroup - Train API.Train your PersonGroups using the PersonGroup - Train API.
  4. Teste com Face - Identifique nos três PersonGroups e compare os resultados.Test with Face - Identify on all three PersonGroups and compare the results.

Se normalmente especificar um limiar de confiança (um valor entre zero e um que determina o quão confiante o modelo deve estar para identificar um rosto), poderá ter de utilizar diferentes limiares para diferentes modelos.If you normally specify a confidence threshold (a value between zero and one that determines how confident the model must be to identify a face), you may need to use different thresholds for different models. Um limiar para um modelo não deve ser partilhado para outro e não produzirá necessariamente os mesmos resultados.A threshold for one model is not meant to be shared to another and will not necessarily produce the same results.

Passos seguintesNext steps

Neste artigo, aprendeu a especificar o modelo de reconhecimento a utilizar com diferentes APIs de serviço Face.In this article, you learned how to specify the recognition model to use with different Face service APIs. Em seguida, siga um quickstart para começar a usar a deteção facial.Next, follow a quickstart to get started using face detection.