Share via


Especificar um modelo de detecção facial

Este guia mostra como especificar um modelo de detecção facial para o serviço de Detecção Facial da IA do Azure.

O serviço de Detecção Facial usa modelos de machine learning para executar operações em rostos humanos em imagens. Continuamos aprimorando a precisão de nossos modelos com base no feedback do cliente e nos avanços na pesquisa e oferecemos esses aprimoramentos como atualizações de modelo. Os desenvolvedores têm a opção de especificar qual versão do modelo de detecção facial gostaria de usar, eles podem escolher o modelo que melhor se adapta ao caso de uso deles.

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

Se você não tiver certeza se deve usar o modelo mais recente, vá para a seção Avaliar diversos modelos 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 detecção facial de IA. Se não estiver, confira o guia conceitual de detecção facial ou o guia de instruções:

Avaliar diversos modelos

Os diferentes modelos de detecção facial são otimizados para tarefas diferentes. Confira a tabela a seguir para obter uma visão geral das diferenças.

Modelar Descrição Observações sobre desempenho Atributos Pontos de referência
detection_01 Opção padrão para todas as operações de detecção facial. Não otimizado para rostos pequenos, de visão lateral ou desfocados. Retorna os principais atributos do rosto (pose da cabeça, idade, emoção e assim por diante) se eles estiverem especificados na chamada de detecção. Retorna os pontos de referência do rosto se eles forem especificados na chamada de detecção.
detection_02 Lançado em maio de 2019 e disponível opcionalmente em todas as operações de detecção facial. Precisão aprimorada em rostos pequenos, de visão lateral e desfocados. Não retorna atributos do rosto. Não retorna pontos de referência do rosto.
detection_03 Lançado em fevereiro de 2021 e disponível opcionalmente em todas as operações de detecção facial. Maior precisão aprimorada, incluindo em rostos menores (64 x 64 pixels) e orientações de rosto giradas. Retorna os atributos máscara e pose de cabeça se eles forem especificados na chamada de detecção. Retorna os pontos de referência do rosto se eles forem especificados na chamada de detecção.

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

Detectar rostos com o modelo especificado

A detecção facial localiza os locais da caixa delimitadora de rostos humanos e identifica seus pontos de referência visuais. Ela extrai as características do rosto e as armazena para uso posterior em operações de reconhecimento.

Quando você usa a API Detectar API, você pode atribuir a versão do modelo com o parâmetro detectionModel. Os valores disponíveis são:

  • detection_01
  • detection_02
  • detection_03

Uma URL de solicitação para a API REST Detectar terá a seguinte 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 clientes, poderá atribuir o valor para detectionModel passando uma cadeia de caracteres apropriada. Se você o deixar sem atribuição, a API usará a versão de modelo padrão (detection_01). Confira 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 rostos a Person com o modelo especificado

O serviço de Detecção Facial pode extrair dados de rosto de uma imagem e associá-los a um objeto Pessoa por meio da API Adicionar Rosto de Pessoa ao Grupo de Pessoas. Nessa chamada de API, você pode especificar o modelo de detecção da mesma forma que em Detectar.

Confira 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 um Person a ele. Em seguida, ele adiciona um rosto a essa Person usando o modelo detection_03. Se você não especificar o parâmetro detectionModel, a API usará o modelo padrão, detection_01.

Observação

Não é necessário usar o mesmo modelo de detecção para todos os rostos em um objeto Pessoa e não é necessário usar o mesmo modelo de detecção ao detectar novos rostos para comparar com um objeto Pessoa (na API Identificar a partir de um Grupo de Pessoas, por exemplo).

Adicionar rosto à FaceList com o modelo especificado

Você também pode especificar um modelo de detecção ao adicionar um rosto a um objeto FaceList existente. Confira 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 uma FaceList chamada My face collection e adiciona um rosto a ela com o modelo detection_03. Se você não especificar o parâmetro detectionModel, a API usará o modelo padrão, detection_01.

Observação

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

Próximas etapas

Neste artigo, você aprendeu a especificar o modelo de detecção para usar com diferentes APIs de Detecção Facial. Em seguida, siga um guia de início rápido para começar a usar a detecção facial e a análise.