O blog da AWS

Utilizando o Amazon Rekognition para identificar aglomerações

Gabriel Bella Martini, Solutions Architect, WWPS Brazil
Lucas Duarte, Solutions Architect, WWPS Brazil
Ernesto dos Santos, Solutions Architect, WWPS Brazil

 

As aglomerações de pessoas atualmente são um grande motivo de preocupação, o exemplo mais recente é a prevenção de contaminações por doenças respiratórias, como o COVID-19. Segundo o IBGE (Instituto Brasileiro de Geografia e Estatística), o município de São Paulo possui aproximadamente a população de 12.2 milhões de pessoas, resultando em uma densidade demográfica alta (7.398,26 hab/km²).
Um caso típico de aglomeração acontece no Carnaval de São Paulo onde no ano de 2020, segundo a Secretária Municipal de Cultura, o evento atraiu aproximadamente 15 milhões de pessoas, ou seja, uma média de 3,8 milhões por dia no município.

Identificar essas aglomerações pode ser interessante em diferentes circunstâncias, tal como eventos fechados e abertos, manifestações em vias públicas, prevenção de riscos de contaminação e acontecimentos pontuais, que decorrem de um cenário onde existe uma multidão não esperada e/ou planejada.

 

O Desafio

Desafios relacionados a visão computacional, quando feitos por processo manual, demandam muito trabalho, e são mais suscetíveis a erros. Segundo a revista Super Interessante (2016), para fazer a contagem de multidões sem a utilização de sistemas inteligentes, a cada hora uma equipe de 40 pesquisadores é posicionada ao longo do percurso para registrar a concentração. Dessa forma, a utilização de sistemas de inteligência artificial pode auxiliar na detecção dessas aglomerações. Entretanto, a construção de modelos de aprendizado de máquina demanda esforço e conhecimento.
Nesse blog post você irá ver como o serviço Amazon Rekognition pode ser incorporado aos seus aplicativos de maneira simples para apoiar essa tarefa.

 

A Solução

O serviço Amazon Rekognition facilita a adição de análises de imagem e vídeo aos seus aplicativos usando a tecnologia comprovada e altamente escalável de aprendizagem profunda, que não requer conhecimentos de machine learning para usar. Com o Amazon Rekognition, você pode identificar objetos, pessoas, texto, cenas e atividades em imagens e vídeos, além de detectar qualquer conteúdo inapropriado.

Utilizaremos o recurso Detect Labels do Amazon Rekogntion para detectar ambientes de multidão, e enviar uma notificação para um endereço de e-mail. Iremos separar a solução em duas etapas: a Ingestão das Imagens, e a Detecção e Notificação de aglomerações.

Figura 1: Rekognition Crowded Demo

 

Etapa 1 – Ingestão das imagens

  • Nesta demonstração simularemos um satélite que fornecerá imagens de lugares com acúmulo de pessoas. Em uma solução produtiva, para obter as imagens poderiamos utilizar: camêras ip, fotos de celulares, e/ou até mesmo nossa solução Amazon Ground Station, um serviço totalmente gerenciado que permite controlar as comunicações, processar os dados, e escalar as operações de satélites sem se preocupar com a criação ou o gerenciamento de sua própria infraestrutura de estações terrestres. Em nosso cenário, faremos a ingestão das imagens obtidas, em nosso storage de objetos Amazon S3;
  • Ao armazenarmos a imagem, um evento é disparado, e uma mensagem com o caminho do objeto no Amazon S3 é enviada para o serviço AWS SQS. Trabalhando com esse design de fila conseguimos aceitar um volume extremamente alto de solicitações, armazenar as solicitações em um repositório de dados durável, e processá-las na velocidade que seu sistema pode suportar.

 

Etapa 2 – Detecção e notificação

  • A função AWS Lambda irá utilizar a API Detect Labels do Amazon Rekognition que já nos disponibiliza a identificação de rótulos ou tags em uma cena, e o nível de confiabilidade para aquela identificação. Neste caso, estamos buscando pelo rótulo Crowd, com no mínimo 70% de confiança.

Figura 2: Amazon Rekognition Detect Labels. Fonte da imagem de teste utilizada iStock

 

Ao identificar uma aglomeração, adicionamos uma mensagem a uma fila no AWS SQS, seguindo o mesmo princípio mencionado acima, e posteriormente enviamos uma notificação por e-mail utilizando o serviço AWS SNS.


Implantando a Solução

Para que você replique a solução, criamos um repositório público com o detalhamento de cada etapa de implementação. Estamos utilizando o serviço Amazon CloudFormation para tratar toda a arquitetura como código.

Rekognition Crowded Demo: https://github.com/aws-samples/rekognition-crowded-demo

 

Conclusão e Próximos Passos

Neste blog post mostramos como é possível utilizar os serviços AWS, para criar uma solução que impacta em diferentes casos de uso na detecção de aglomerações, e vimos como utilizar o Amazon Rekognition para implantar Inteligência Artificial de maneira rápida e fácil.

Adicionalmente podemos modificar essa solução para calcular o número de pessoas, e em casos mais específicos determinar a distância entre estas pessoas. Iremos abordar estes próximos passos na segunda parte deste blog.

 


Sobre os autores

Gabriel Bella Martini é um Arquiteto de Soluções na AWS. Atua ajudando clientes do setor público (educação, governo e instituições sem fins lucrativos) durante a jornada na nuvem da AWS. Tem trabalhado em diferentes projetos relacionados a inteligência artificial e IoT, e também tem grande interesse na área de computação gráfica.

 

 

 

Lucas Duarte, Arquiteto de Soluções na AWS. Atua com clientes do setor público, é entusiasta de automação, Cloud, e cultura DevOps. Com experiência prévia em projetos focados nesse segmento em empresas como IFood, Guiabolso e Mandic. Tem trabalhado em diferentes projetos relacionados principalmente a orquestração de containers e microsserviços.

 

 

 

Ernesto dos Santos, Arquiteto de Soluções na AWS. Atua auxiliando e apoiando clientes do setor público em sua jornada para a nuvem AWS, trabalhando em projetos que envolvam arquiteturas distribuídas e escaláveis. Tem grande interesse na área de segurança da informação, infraestrutura, networking e serverless.