Especifique um modelo de deteção facial

Este guia mostra como especificar um modelo de deteção de rosto para o serviço Azure AI Face.

O serviço Face usa modelos de aprendizado de máquina para realizar operações em rostos humanos 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 têm a opção de especificar qual versão do modelo de deteção de rosto eles gostariam de usar; Eles podem escolher o modelo que melhor se adapta ao seu caso de uso.

Continue lendo para saber como especificar o modelo de deteção de rosto em determinadas operações faciais. O serviço Face usa a deteção de rosto sempre que converte uma imagem de um rosto em alguma outra forma de dados.

Se não tiver certeza se deve usar o modelo mais recente, vá para a seção Avaliar modelos diferentes para avaliar o novo modelo e comparar os resultados usando seu conjunto de dados atual.

Pré-requisitos

Você deve estar familiarizado com o conceito de deteção de rosto de IA. Se não estiver, consulte o guia conceitual de deteção de rosto ou o guia de instruções:

Avaliar diferentes modelos

Os diferentes modelos de deteção de rosto são otimizados para diferentes tarefas. Consulte a tabela a seguir para obter uma visão geral das diferenças.

Modelo Description Notas de desempenho Atributos Pontos de referência
detection_01 Escolha padrão para todas as operações de deteção de rosto. Não otimizado para rostos pequenos, com vista lateral ou desfocados. Retorna os principais atributos do rosto (pose de cabeça, idade, emoção e assim por diante) se forem especificados na chamada de deteção. Retorna pontos de referência de face se eles forem especificados na chamada de deteção.
detection_02 Lançado em maio de 2019 e disponível opcionalmente em todas as operações de deteção de rosto. Precisão melhorada em rostos pequenos, com vista lateral e desfocados. Não retorna atributos de face. Não retorna face pontos de referência.
detection_03 Lançado em fevereiro de 2021 e disponível opcionalmente em todas as operações de deteção de rosto. Maior precisão, incluindo em faces menores (64x64 pixels) e orientações de rosto giradas. Retorna atributos de pose de máscara e cabeça se forem especificados na chamada de deteção. Retorna pontos de referência de face se eles forem especificados na chamada de deteção.

A melhor maneira de comparar os desempenhos dos modelos de deteção é usá-los em um conjunto de dados de amostra. Recomendamos chamar a API Face - Detect em uma variedade de imagens, especialmente imagens de muitos rostos ou de rostos difíceis de ver, usando cada modelo de deteção. Preste atenção ao número de faces que cada modelo retorna.

Detetar rostos com o modelo especificado

A deteção de rostos encontra os locais das caixas delimitadoras de rostos humanos e identifica seus pontos de referência visuais. Ele extrai as características do rosto e as armazena para uso posterior em operações de reconhecimento .

Ao usar a API Face - Detect, você pode atribuir a versão do modelo com o detectionModel parâmetro. Os valores disponíveis são:

  • detection_01
  • detection_02
  • detection_03

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][&detectionModel]&subscription-key=<Subscription key>

Se você estiver usando a biblioteca de cliente, poderá atribuir o valor para detectionModel passando uma cadeia de caracteres apropriada. Se você deixá-lo não atribuído, a API usará a versão padrão do modelo (detection_01). 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: false, returnFaceLandmarks: false, recognitionModel: "recognition_04", detectionModel: "detection_03");

Adicionar face a Pessoa com modelo especificado

O serviço Face pode extrair dados faciais de uma imagem e associá-los a um objeto Person através da API PersonGroup Person - Add Face. Nesta chamada de API, você pode especificar o modelo de deteção da mesma forma que em Face - Detect.

Consulte o exemplo de código a seguir para a biblioteca de cliente .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");

Esse código cria um PersonGroup com ID mypersongroupid e adiciona uma Person a ele. Em seguida, adiciona um rosto a essa pessoa usando o detection_03 modelo. Se você não especificar o parâmetro detectionModel, a API usará o modelo padrão, detection_01.

Nota

Você não precisa usar o mesmo modelo de deteção para todos os rostos em um objeto Person e não precisa usar o mesmo modelo de deteção ao detetar novos rostos para comparar com um objeto Person (na API Face - Identificar, por exemplo).

Adicionar face à FaceList com o modelo especificado

Você também pode especificar um modelo de deteção ao adicionar um rosto a um objeto FaceList existente. 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");

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

Esse código cria um FaceList chamado My face collection e adiciona um Face a ele com o detection_03 modelo. Se você não especificar o parâmetro detectionModel, a API usará o modelo padrão, detection_01.

Nota

Você não precisa usar o mesmo modelo de deteção para todos os rostos em um objeto FaceList e não precisa usar o mesmo modelo de deteção ao detetar novos rostos para comparar com um objeto FaceList.

Próximos passos

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