Posts

Amazon Rekognition

Introdução

O Amazon Rekognition, criado pela AWS em novembro de 2016, facilita a adição de análise de imagem e vídeo aos seus aplicativos. Você apenas fornece uma imagem ou um vídeo para a API do Rekognition e o serviço pode identificar objetos, pessoas, textos, cenas e atividades ou mesmo conteúdo improprio como nudez. O Amazon Rekognition também fornece análise facial e reconhecimento facial altamente precisos, podendo identificar até 100 pessoas em uma única requisição de imagem. Você pode detectar, analisar e comparar rostos para uma ampla variedade de casos de uso, incluindo verificação de usuários, catalogação, contagem de pessoas e segurança pública, como já é usado pela polícia de Orlando nos estados unidos para encontrar pessoas utilizando o auxílio de imagens feitas por câmeras de segurança.

O Amazon Rekognition é baseado na tecnologia de deep learning e inclui uma API simples e fácil de usar que pode analisar rapidamente qualquer arquivo de imagem ou vídeo sem a necessidade de montar um modelo de aprendizado de máquina, infraestrutura ou até mesmo conhecimento em deep learning. O Amazon Rekognition está sempre aprendendo com novos dados e está continuamente adicionando novos recursos e rótulos ao serviço, e com uso centralizado tornasse cada vez mais inteligente com sua retroalimentação do processamento de milhares de requisições pelo mundo, identificando a cada segundo novos objetos, expressões faciais e contextos.

Usos comuns das API’s do AWS Rekognition:

  1. Bibliotecas de imagens e vídeos pesquisáveis: o Amazon Rekognition torna as imagens e vídeos armazenados pesquisáveis ​​para que você possa descobrir objetos e cenas que aparecem neles.
  2. Identificação de usuários baseada em reconhecimento facial: Amazon Rekognition permite que seus aplicativos confirmem identidades de usuários comparando a imagem ao vivo com uma imagem de referência.
  3. Sentimento e análise demográfica: Amazon Rekognition detecta emoções como felicidade, tristeza, surpresa e informações demográficas.
  4. Reconhecimento facial: Com o Amazon Rekognition, você pode pesquisar imagens, vídeos armazenados e vídeos de streaming para rostos que correspondam aos armazenados em um índice de coleção de rostos.
  5. Detecção de conteúdo inseguro: Amazon Rekognition pode detectar conteúdo adulto explícito e sugestivo em imagens e em vídeos. Os desenvolvedores podem usar os metadados retornados para filtrar conteúdo impróprio.
  6. Reconhecimento de celebridades: o Amazon Rekognition pode reconhecer celebridades em imagens fornecidas e em vídeos. O Rekognition pode reconhecer milhares de celebridades em várias categorias, como política, esportes, negócios, entretenimento e mídia.
  7. Detecção de texto: Amazon Rekognition Text in Image permite reconhecer e extrair conteúdo textual de imagens. Text in Image suporta a maioria das fontes, incluindo aquelas altamente estilizadas. Ele detecta texto e números em diferentes orientações, como é comumente encontrado em banners e cartazes. Em aplicativos de compartilhamento de imagens e redes sociais, você pode usá-lo para ativar a pesquisa visual com base em um índice de imagens que contêm as mesmas palavras-chave por exemplo.

O Amazon Rekognition funciona através de um SDK disponível em diversas linguagens como java, .net, nodejs entre outras e sua estrutura de requisição é simples e fácil de compreender. Para os casos de exemplo iremos utilizar o SDK em .NET disponível no gerenciador de pacotes nuget com o nome de AWSSDK.Rekognition para utilizar alguns dos recursos do AWS Rekognition como a detecção de faces e o reconhecimento facial.

Uso das API’s do Rekognition

Primeiramente é necessário configurar as credenciais de acesso na AWS IAM para autorização de acesso às APIS do rekognition.

  1. Em Group, crie um group que vai possuir as permissões de acesso às API’s do rekognition e selecione as policies de acesso ao rekognition.

  1. Crie o usuário com o qual será utilizado suas credenciais para acesso aos recursos da API’s do Rekognition configurados para o grupo criando anteriormente. Lembre-se que o usuário deve possuir acesso (Programmatic access) para ter acesso às access key e secret key. Lembre no final da criação do usuário salvar a access e secret keys.

Agora que temos configurado as nossas credenciais vamos dar uma olhada em alguns casos de como usar as API’s do rekognition.

 

Detecção de Faces em uma Imagem

Com o código a seguir conseguimos identificar todas as faces de uma imagem. Passando uma imagem em bytes (base64) para o modelo de requisição de comparação de faces. A AWS retornara para nós informações de posicionamento das faces em orientação a imagem que passamos para ele. O objeto “_credentials” é um objeto do tipo Amazon.Runtime.AWSCredentials onde passamos o access key e secret key da credencial do usuário.

O rekognition nos retorna um objeto com informações das posições das faces, idade das faces, se possuem ou não barba, isto é, todas as características possíveis para as faces encontradas na imagem.

Comparando Faces

Com o código a seguir conseguimos comparar uma imagem de origem, uma imagem no qual temos rostos conhecidos no qual queremos comparar com outra imagem, e a imagem de destino, imagem onde será identificado e comparado os rostos. Assim como no método anterior ambas as imagens devem estar em base64 e convertidas para um array de bytes.

A API da AWS Rekognition nos retornará um objeto contendo as faces reconhecidas e as faces não reconhecidas. Cada face reconhecida, assim como as não reconhecidas, apresenta informações de localização na imagem de destino assim como porcentagem de similaridade das faces das duas imagens, assim o desenvolvedor pode decidir o critério de aceite de uma determinada comparação.

Custos

Os custos variam de região para região. Com o exemplo abaixo na região leste dos EUA (us-east2) os preços começam a partir de um dólar para cada mil comparações, essas comparações tendo um ou mais resultados encontrados. Um exemplo, ao comparar um rosto com um índice de mais de 100 rostos irá consumirá apenas uma requisição.

Aplicação Teste

No Centro de Estudos Dart (CED) foi desenvolvido uma aplicação para identificar membros cadastrados pertencente à Dart Digital. Nele foi utilizado a API de comparação de faces do Rekognition onde era comparado face a face com uma base de imagens de membros da Dart. Para validar a comparação apenas alguns membros presentes na apresentação possuíam suas faces mapeadas no banco de membros. Uma imagem era capturada pelo webcam e enviada para comparação para as API do rekognition. Os membros Dart encontrados na imagem eram selecionados com um quadrado laranja.

O projeto está disponível no github pelo link https://github.com/viamus/AWS-Rekognition-Sample para quem tiver interesse em analisar como exemplo foi desenvolvido como um todo.

 

Referências

Documentação AWS Rekognition: https://docs.aws.amazon.com/rekognition