Especifique um modelo de reconhecimento facial

Atenção

O acesso ao serviço presencial é limitado com base em critérios de elegibilidade e uso, a fim de apoiar nossos princípios de IA responsável. O serviço Face só está disponível para clientes e parceiros geridos pela Microsoft. Use o formulário de admissão de Reconhecimento Facial para solicitar acesso. Para obter mais informações, consulte a página Acesso limitado Face.

Este guia mostra como especificar um modelo de reconhecimento facial para deteção de rosto, identificação e pesquisa de semelhança usando o serviço Azure AI Face.

O serviço Face usa modelos de aprendizado de máquina para realizar operações em rostos humanos visíveis em imagens. Continuamos a melhorar a precisão de nossos modelos com base no feedback dos clientes e nos avanços na pesquisa, e fornecemos essas melhorias como atualizações de modelos. Os desenvolvedores podem especificar qual versão do modelo de reconhecimento facial gostariam de usar, escolhendo o modelo que melhor se adapta ao seu caso de uso.

Compatibilidade do modelo

O serviço Azure AI Face tem quatro modelos de reconhecimento disponíveis. Os modelos recognition_01 (publicado em 2017), recognition_02 (publicado em 2019) e recognition_03 (publicado em 2020) são continuamente suportados para garantir compatibilidade com versões anteriores para os clientes que usam FaceLists ou PersonGroups criados com esses modelos. Um FaceList ou PersonGroup usa sempre o modelo de reconhecimento com o qual foi criado, e novos rostos são associados a esse modelo quando são adicionados. Isso não pode ser alterado após a criação e os clientes precisam usar o modelo de reconhecimento correspondente com o FaceList ou PersonGroup correspondente.

Você pode mudar para modelos de reconhecimento posteriores em sua própria conveniência; no entanto, você precisará criar novos FaceLists e PersonGroups com o modelo de reconhecimento de sua escolha.

O modelo recognition_04 (publicado em 2021) é o mais preciso atualmente disponível. Se você é um novo cliente, recomendamos usar este modelo. Recognition_04 fornece maior precisão para comparações de semelhança e comparações de correspondência de pessoas. Recognition_04 melhora o reconhecimento para usuários inscritos usando coberturas faciais (máscaras cirúrgicas, máscaras N95, máscaras de pano). Agora você pode criar experiências de usuário seguras e perfeitas que usam o modelo de detection_03 mais recente para detetar se um usuário inscrito está usando uma cobertura facial. Em seguida, você pode usar o modelo de recognition_04 mais recente para reconhecer sua identidade. Cada modelo opera independentemente dos outros, e um limiar de confiança definido para um modelo não deve ser comparado entre os outros modelos de reconhecimento.

Continue lendo para saber como especificar um modelo selecionado em diferentes operações do Face, evitando conflitos de modelo. Se for um utilizador avançado e pretender determinar se deve mudar para o modelo mais recente, avance para a secção Avaliar modelos diferentes. Você pode avaliar o novo modelo e comparar os resultados usando seu conjunto de dados atual.

Pré-requisitos

Você deve estar familiarizado com os conceitos de deteção e identificação facial de IA. Se não estiver, consulte estes guias primeiro:

Detetar rostos com o modelo especificado

A deteção de rostos identifica os pontos de referência visuais de rostos humanos e encontra suas localizações de caixas delimitadoras. Ele também extrai as características do rosto e as armazena temporariamente por até 24 horas para uso na identificação. Toda esta informação forma a representação de uma face.

O modelo de reconhecimento é usado quando os recursos da face são extraídos, para que você possa especificar uma versão do modelo ao executar a operação Detetar.

Ao usar a API Face - Detect, atribua a versão do modelo com o recognitionModel parâmetro. Os valores disponíveis são:

  • recognition_01
  • recognition_02
  • recognition_03
  • recognition_04

Opcionalmente, você pode especificar o parâmetro returnRecognitionModel (false padrão) para indicar se recognitionModel deve ser retornado em resposta. Assim, um URL de solicitação para a API Face - Detect REST terá esta aparência:

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

Se você estiver usando a biblioteca de cliente, poderá atribuir o valor para recognitionModel passando uma cadeia de caracteres que representa a versão. Se você deixá-lo não atribuído, uma versão padrão do modelo será recognition_01 usada. Consulte o exemplo de código a seguir para a biblioteca de cliente .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);

Nota

O parâmetro returnFaceId deve ser definido como true para habilitar os cenários de reconhecimento facial em etapas posteriores.

Identificar rostos com o modelo especificado

O serviço Face pode extrair dados faciais de uma imagem e associá-los a um objeto Person (por meio da chamada Add face API call, por exemplo), e vários objetos Person podem ser armazenados juntos em um PersonGroup. Em seguida, um novo rosto pode ser comparado com um PersonGroup (com a chamada Face - Identificar), e a pessoa correspondente dentro desse grupo pode ser identificada.

Um PersonGroup deve ter um modelo de reconhecimento exclusivo para todas as Pessoas, e você pode especificar isso usando o parâmetro ao criar o recognitionModel grupo (PersonGroup - Create ou LargePersonGroup - Create). Se você não especificar esse parâmetro, o modelo original recognition_01 será usado. Um grupo sempre usará o modelo de reconhecimento com o qual foi criado e novos rostos serão associados a esse modelo quando forem adicionados a ele. Isso não pode ser alterado após a criação de um grupo. Para ver com que modelo um PersonGroup está configurado, use a API PersonGroup - Get com o parâmetro returnRecognitionModel definido como true.

Consulte o exemplo de código a seguir para a biblioteca de cliente .NET.

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

Neste código, um PersonGroup com ID mypersongroupid é criado e configurado para usar o modelo recognition_04 para extrair recursos de rosto.

Correspondentemente, você precisa especificar qual modelo usar ao detetar rostos para comparar com este PersonGroup (através da API Face - Detetar ). O modelo que você usa deve sempre ser consistente com a configuração do PersonGroup, caso contrário, a operação falhará devido a modelos incompatíveis.

Não há alteração na API Face - Identificar, basta especificar a versão do modelo na deteção.

Encontre rostos semelhantes com o modelo especificado

Você também pode especificar um modelo de reconhecimento para pesquisa de similaridade. Você pode atribuir a versão do modelo com ao criar o FaceList com recognitionModelFaceList - Create API ou LargeFaceList - Create. Se você não especificar esse parâmetro, o recognition_01 modelo será usado por padrão. Um FaceList sempre usará o modelo de reconhecimento com o qual foi criado, e novos rostos serão associados a esse modelo quando forem adicionados à lista, você não pode alterar isso após a criação. Para ver com que modelo uma FaceList está configurada, use a API FaceList - Get com o parâmetro returnRecognitionModel definido como true.

Consulte o exemplo de código a seguir para a biblioteca de cliente .NET.

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

Esse código cria uma FaceList chamada My face collection, usando o modelo recognition_04 para extração de recursos. Quando pesquisa nesta FaceList rostos semelhantes a um novo rosto detetado, esse rosto deve ter sido detetado (Face - Detetar) utilizando o modelo recognition_04. Como na seção anterior, o modelo precisa ser consistente.

Não há alteração na API Face - Find Similar, você apenas especifica a versão do modelo na deteção.

Verificar faces com o modelo especificado

A API Face - Verify verifica se duas faces pertencem à mesma pessoa. Não há nenhuma alteração na API de verificação em relação aos modelos de reconhecimento, mas você só pode comparar faces que foram detetadas com o mesmo modelo.

Avaliar diferentes modelos

Se quiser comparar os desempenhos de diferentes modelos de reconhecimento em seus próprios dados, você precisará:

  1. Crie quatro PersonGroups usando recognition_01, recognition_02, recognition_03 e recognition_04 respectivamente.
  2. Use seus dados de imagem para detetar rostos e registrá-los para Pessoasdentro desses quatro PersonGroup.
  3. Treine seus PersonGroupusando a API PersonGroup - Train.
  4. Teste com Rosto - Identifique em todos os quatro PersonGroups e compare os resultados.

Se você normalmente especificar um limite de confiança (um valor entre zero e um que determina o quão confiante o modelo deve ser para identificar uma face), talvez seja necessário usar limites diferentes para modelos diferentes. Um limite para um modelo não deve ser compartilhado com outro e não necessariamente produzirá os mesmos resultados.

Próximos passos

Neste artigo, você aprendeu como especificar o modelo de reconhecimento a ser usado com diferentes APIs de serviço do Face. Em seguida, siga um guia de início rápido para começar a usar a deteção de rosto.