Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Cuidado
O acesso ao serviço de detecção facial é limitado com base nos critérios de qualificação e uso para dar suporte aos nossos princípios de IA responsável. O serviço de detecção facial só está disponível para Microsoft clientes e parceiros gerenciados. Utilize o formulário de solicitação de Reconhecimento Facial para solicitar acesso. Para obter mais informações, consulte a página Acesso Limitado Facial.
Este guia mostra como especificar um modelo de reconhecimento facial para detecção facial, identificação e pesquisa de similaridade usando o serviço Detecção Facial do Azure.
O serviço De detecção facial usa modelos de machine learning para executar operações em rostos humanos visíveis em imagens. Continuamos a melhorar a precisão de nossos modelos com base nos comentários e avanços dos clientes na pesquisa e fornecemos essas melhorias como atualizações de modelo. Os desenvolvedores podem especificar qual versão do modelo de reconhecimento facial eles gostariam de usar, escolhendo o modelo que melhor se ajusta ao seu caso de uso.
Pré-requisitos
Você deve estar familiarizado com os conceitos de detecção e identificação facial de IA. Se não estiver, consulte estes guias primeiro:
Compatibilidade de modelo
O serviço Detecção Facial do Azure tem quatro modelos de reconhecimento disponíveis. Os modelos recognition_01 (publicados em 2017), recognition_02 (publicados em 2019) e recognition_03 (publicados em 2020) têm suporte contínuo para garantir a compatibilidade com versões anteriores para clientes que usam FaceListou PersonGroupcriados com esses modelos. Um FaceList ou PersonGroup sempre usa o modelo de reconhecimento com o qual foi criado e novos rostos se tornam 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 a FaceList ou PersonGroup correspondentes.
Você pode migrar para modelos de reconhecimento posteriores por sua própria conveniência; no entanto, você precisará criar novos FaceLists e PersonGroups com o modelo de reconhecimento de sua escolha.
Recomendações de modelo
O modelo de recognition_04 (publicado em 2021) é o modelo mais preciso atualmente disponível. Se você for um novo cliente, use este modelo. Recognition_04 fornece precisão aprimorada para comparações de similaridade e comparações de correspondência de pessoas. Recognition_04 melhora o reconhecimento de usuários registrados usando capas faciais (máscaras cirúrgicas, máscaras N95, máscaras de pano). Você pode criar experiências de usuário seguras e perfeitas que usam o modelo de detection_03 mais recente para detectar se um usuário registrado está usando uma capa facial e, em seguida, usar o modelo de recognition_04 mais recente para reconhecer sua identidade. Cada modelo opera independentemente dos outros, e um limite de confiança definido para um modelo não deve ser comparado entre os outros modelos de reconhecimento.
As seções a seguir explicam como especificar um modelo selecionado em diferentes operações de detecção facial, evitando conflitos de modelo. Se você for um usuário avançado e quiser determinar se deve alternar para o modelo mais recente, vá para a seção Avaliar modelos diferentes para avaliar o novo modelo e comparar os resultados usando o conjunto de dados atual.
Detectar rostos com o modelo especificado
A detecção facial identifica os marcos visuais dos rostos humanos e determina as localizações de suas caixas delimitadoras. Ele também extrai as características do rosto e as armazena temporariamente por até 24 horas para uso na identificação. Todas essas informações formam a representação de um rosto.
O modelo de reconhecimento é usado quando as características faciais são extraídas, para que você possa especificar uma versão do modelo ao executar a operação Detectar.
Ao usar a API de Detecção , atribua a versão do modelo com o recognitionModel parâmetro. Os valores disponíveis são:
recognition_01recognition_02recognition_03recognition_04
Opcionalmente, você pode especificar o parâmetro returnRecognitionModel ( falso padrão) para indicar se recognitionModel deve ser retornado em resposta. Portanto, uma URL de solicitação para a API REST Detect terá esta aparência:
https://westus.api.cognitive.microsoft.com/face/v1.0/detect?detectionModel={detectionModel}&recognitionModel={recognitionModel}&returnFaceId={returnFaceId}&returnFaceAttributes={returnFaceAttributes}&returnFaceLandmarks={returnFaceLandmarks}&returnRecognitionModel={returnRecognitionModel}&faceIdTimeToLive={faceIdTimeToLive}
Se você estiver usando a biblioteca cliente, poderá atribuir o valor para recognitionModel passando uma cadeia de caracteres que representa a versão. Se você deixá-lo sem atribuição, uma versão padrão do modelo recognition_01 será usada. Consulte o exemplo de código a seguir para a biblioteca de clientes do .NET.
string imageUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection1.jpg";
var response = await faceClient.DetectAsync(new Uri(imageUrl), FaceDetectionModel.Detection03, FaceRecognitionModel.Recognition04, returnFaceId: true, returnFaceLandmarks: true, returnRecognitionModel: true);
var faces = response.Value;
Nota
O parâmetro returnFaceId deve ser definido para true habilitar os cenários de reconhecimento facial em etapas posteriores.
Identificar rostos com o modelo especificado
O serviço de Face pode extrair dados de face de uma imagem e associá-los a um objeto Person (por meio da chamada da API Add Person Group Person Face, 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 Identificar do Grupo de Pessoas) e a pessoa correspondente dentro desse grupo pode ser identificada.
Um PersonGroup deve ter um modelo de reconhecimento exclusivo para todas as Pessoase você pode especificar isso usando o recognitionModel parâmetro ao criar o grupo (Criar Grupo de Pessoas ou Criar Grupo de Pessoas Grandes). 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 se tornarã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 qual modelo um PersonGroup está configurado, use a API Get Person Group com o parâmetro returnRecognitionModel definido como true.
Consulte o exemplo de código .NET a seguir.
// Create an empty PersonGroup with "recognition_04" model
string personGroupId = "mypersongroupid";
using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["name"] = "My Person Group Name", ["recognitionModel"] = "recognition_04" }))))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
await httpClient.PutAsync($"{ENDPOINT}/face/v1.0/persongroups/{personGroupId}", content);
}
Nesse código, um PersonGroup com ID mypersongroupid é criado e ele é configurado para usar o modelo recognition_04 para extrair recursos de detecção facial.
Correspondentemente, você precisa especificar qual modelo usar ao detectar rostos a serem comparados com esse PersonGroup (por meio da API de Detecção ). O modelo que você usa sempre deve ser consistente com a configuração do PersonGroup; caso contrário, a operação falhará devido a modelos incompatíveis.
Não há nenhuma alteração na API de Identificação de Grupo de Pessoas; você só precisa especificar a versão do modelo no processo de detecção.
Localizar 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 recognitionModel do modelo ao criar a FaceList com a API Criar Lista de Rostos ou Criar Lista de Rostos Grandes. Se você não especificar esse parâmetro, o recognition_01 modelo será usado por padrão. Uma FaceList sempre usará o modelo de reconhecimento com o qual foi criado, e novos rostos se tornarão associados a esse modelo quando forem adicionados à lista; você não pode alterar isso após a criação. Para ver com qual modelo uma FaceList está configurada, use a API Get Face List com o parâmetro returnRecognitionModel definido como true.
Consulte o exemplo de código .NET a seguir.
using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["name"] = "My face collection", ["recognitionModel"] = "recognition_04" }))))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
await httpClient.PutAsync($"{ENDPOINT}/face/v1.0/facelists/{faceListId}", content);
}
Esse código cria uma FaceList chamada My face collection, usando o modelo recognition_04 para extração de recursos. Quando você pesquisa este FaceList em busca de rostos semelhantes a um novo rosto detectado, esse rosto deve ter sido detectado (Detectar) usando o modelo recognition_04 . Como na seção anterior, o modelo precisa ser consistente.
Não há nenhuma alteração na API Localizar Semelhante ; você só especifica a versão do modelo na detecção.
Verificar rostos com o modelo especificado
A API Verificar Cara a Cara verifica se dois rostos 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 rostos detectados com o mesmo modelo.
Avaliar modelos diferentes
Se você quiser comparar os desempenhos de diferentes modelos de reconhecimento em seus próprios dados, precisará:
- Crie quatro PersonGroups usando recognition_01, recognition_02, recognition_03 e recognition_04, respectivamente.
- Use seus dados de imagem para detectar rostos e registrá-los em Persons dentro desses quatro PersonGroups.
- Treine seus PersonGroups usando a API Treinar Grupo de Pessoas.
- Teste com Identifique de Grupo de Pessoas em todos os quatro PersonGroupse 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 um rosto), 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óxima etapa
Neste artigo, você aprendeu a especificar o modelo de reconhecimento a ser usado com diferentes APIs do Serviço de Detecção Facial. Em seguida, siga um guia de início rápido para começar a detecção facial.