Fonte: https://blog.xamarin.com/adding-facial-recognition-to-your-mobile-apps

Por Pierce Boggan, 22 de junho de 2016

Tradução: salomaosilva, Azuris. Desenvolvedor Xamarin Azuris

 

Seja marcando automaticamente os amigos nas fotos no Facebook ou através dos “filtros ao vivo” no Snapchat, o reconhecimento facial está cada vez mais se tornando grande parte de nossas vidas cotidianas. Adicionar reconhecimento facial ao software no passado era um grande desafio. Agora, porém, os Serviços Microsoft Cognitivos o tornam tão fácil como programar algumas linhas de código-gratuitamente.

Se você está desenvolvendo aplicativos para consumidores ou empresas, há uma API de Serviços Cognitivos da Microsoft que tornará seu aplicativo mais inovador e agradável de usar. Neste post, você aprenderá como adicionar reconhecimento facial com as APIs de rosto da Microsoft Cognitive Services a um aplicativo de diretório de funcionários, para que possamos identificar um funcionário desconhecido de uma foto.

Apresentando as APIs de rosto

Os Serviços Cognitivos Microsoft (Microsoft Cognitive Services) permitem que você crie aplicativos com poderosos algoritmos em poucas linhas de código, fornecendo 22 APIs que usam inteligência artificial e aprendizado de máquina para fazer tudo, desde OCR até reconhecimento de fala e facial. As APIs são divididas em cinco grupos principais: visão, fala, linguagem, conhecimento e pesquisa. As APIs de rosto dos Serviços Cognitivos Microsoft (Face APIs from Microsoft Cognitive Services) permitem que você detecte rostos humanos, organize pessoas em grupos, encontre rostos semelhantes e identifique rostos previamente marcados em imagens.

A Xamarin tem crescido de uma maneira impressionante ao longo dos últimos anos, e às vezes é difícil conhecer exatamente a todos. A boa notícia sobre os Serviços Cognitivos da Microsoft é que não é apenas excelente para apps inovadores, mas para todos os tipos de aplicativos, incluindo aplicativos criados para corporações. Neste post, vamos criar um aplicativo de diretório de funcionários que identifica um funcionário de uma foto para ajudar a garantir que eu não entre em uma situação embaraçosa numa festa da empresa, se eu não conhecer alguém que eu deveria.

Para experimentar gratuitamente, visite a página de inscrição do Microsoft Cognitive Services, e inscreva-se nas APIs de rosto. Uma vez registrado, você terá uma assinatura gratuita para as APIs de rosto, incluindo as chaves da API.

Baixe o código de inicialização para o aplicativo de diretório de funcionários xamarin que estenderemos para usar o reconhecimento facial para identificar funcionários de uma foto.

Identificando funcionários com reconhecimento facial

Para identificar uma pessoa em uma foto, devemos primeiro treinar o modelo de reconhecimento facial. Identificar a pessoa em uma foto é tão fácil quanto os passos a seguir:

  1. Crie um grupo de pessoas.
  2. Adicione pessoas com rostos correspondentes a esse grupo de pessoas.
  3. Treine o modelo de reconhecimento facial.
  4. Detecte e identifique as pessoas em uma foto.

Treinando o modelo de reconhecimento facial

Para começar, abra EmployeesViewModel e adicione um novo método chamado RegisterEmployees. Começamos criando um novo grupo de pessoas, que é apenas um recipiente para um grupo de pessoas. Depois de criarmos um grupo de pessoas, precisamos adicionar pessoas a esse grupo. Cada pessoa também precisa de uma ou mais faces das quais possamos identificá-las. Finalmente, precisamos treinar o grupo de pessoas. Isso identificará as características únicas de cada face que podem ser usadas posteriormente para identificar uma pessoa.

Já em produção, o processo de criação de um grupo de pessoas, adicionando pessoas e rostos e treinando o modelo provavelmente seria feito no backend. Por exemplo, quando você informar um novo funcionário em seu backend, uma nova pessoa (e rosto correspondente) seria automaticamente adicionado e o modelo seria retreinado.

Em seguida, chame RegisterEmployees do construtor do EmployeesViewModel para garantir que estamos configurando o nosso modelo de reconhecimento facial na inicialização. Agora estamos prontos para identificar funcionários!

Detecção facial e identificação

Agora que já treinamos adequadamente nosso modelo de reconhecimento facial, podemos usar o Microsoft Cognitive Services para identificar uma pessoa a partir de uma foto. Como estamos usando o padrão MVVM em nosso aplicativo de diretório de funcionários, podemos usar o comando para responder a eventos em nossa interface de usuário e executar código em nosso modelo de exibição. Navegue para o ExecuteFindSimilarFaceCommandAsyncmethod em EmployeesViewModel, que é um método de apoio para o nosso comando onde vamos escrever a lógica para identificar um funcionário.

Primeiro, precisamos tirar uma foto na qual possamos identificar um funcionário. Podemos usar o Media Plugin para Xamarin e Windows para tirar ou selecionar fotos do código compartilhado:

Agora que temos uma foto, vamos passar isso para o Microsoft Cognitive Services para identificar o funcionário:

É isso aí! Toda a nossa lógica de reconhecimento facial agora está completa. Vá para EmployeesPage.xaml, onde adicionaremos um ToolbarItem à barra de navegação para que os usuários cliquem para iniciar a câmera e identificar um funcionário:

Agora podemos identificar funcionários. A grande notícia sobre Xamarin.Forms é que você pode construir grandes aplicativos móveis que são executados em iOS, Android e Windows 10 móvel, mas também aplicativos de desktop com Xamarin.Forms para UWP. Vamos identificar uma foto minha usando o aplicativo de diretório de funcionários e um laptop do Windows 10:

 

Concluindo

Neste post utilizamos as APIs de rosto do Microsoft Cognitive Service para identificar um funcionário desconhecido do nosso diretório de funcionários, tirando ou selecionando uma foto. Para saber mais sobre os Serviços Cognitivos da Microsoft, assista à sessão “Construa aplicativos inteligentes com Microsoft Cognitive Services a partir do Xamarin Evolve 2016.

Para obter mais exemplos do uso do Microsoft Cognitive Services para criar aplicativos inteligentes para dispositivos móveis e fazer o download do código completo desta postagem, confira o meu repositório de apps inteligentes no  GitHub