Catraca inteligente

Desafio de Projetos Embarcados 2023: Visão computacional na borda com ESP32-S3 EYE

Participantes

Wallace Brito

Guilherme Aparecido Gregorio

Resumo

Construção de um protótipo catraca inteligente para academias, automatizando o reconhecimento dos usuários por meio de reconhecimento facial e realizar cobranças para pagamento via Pix.


Descrição do projeto

Atualmente os dispositivos de IoT estão cada vez mais presentes em nosso cotidiano e sendo mais comum presenciarmos e interagimos com objetos que possuem alguma inteligência atrelada a eles. Isso se torna possível devido ao desenvolvimento contínuo de IoT em conjunto com o desenvolvimento de inteligência artificial, computação em nuvem e outros. Com isso, podemos criar aplicativos e dispositivos com grande utilidade e aplicabilidade no mercado de uma forma geral. Um exemplo é o reconhecimento facial que pode ser aplicado em uma grande gama de dispositivos. 

No final do ano de 2020 o Banco Central do Brasil lançou um meio de pagamento (PIX) de fácil acesso e que é capaz de realizar transações entre instituições bancárias em poucos segundos. 

O objetivo deste trabalho é unir esses dois mundo a IoT com a grande evolução do sistema de pagamento brasileiro e trazer mais robustez para uma catraca que no caso será aplicada ao contexto de academia mas nada impede de se expandir para outros cenários. A liberação do cliente para entrar no estabelecimento deve acontecer 100% automática, assim com o pagamento via PIX, uma vez que o cliente já possui cadastro realizado. Além disso, deve ser possível controlar alguns dados, como por exemplo o tráfego de cliente em um determinado tempo, quantidade de clientes novos e etc. Com isso pretendemos trazer mais praticidade para o dono do comércio e para os seus clientes.

Hardware

Placa de desenvolvimento ESP32-S3 EYE:

Software/Firmware

Backend

O backend foi desenvolvido na linguagem Python usando o Flask para exportar os endpoints onde a ESP32 irá consumir. 

Os endpoints:

  • POST /user
    • Registra um usuário na base de dados
  • GET /user/:id
    • Consulta usuário cadastrado
  • GET /users
    • Lista usuários
  • POST /face/detection
    • Detecta face em uma imagem
  • POST /face/recognition
    • Reconhece a face do usuário com a base de dados

Execução do backend via docker:

Banco de dados

Para persistência dos dados dos clientes da academia foi usado um banco relacional em MySQL, abaixo segue o diagrama com todas as tabelas.

Front-End para controle dos clientes

Foi criada uma interface simples apenas para demonstração do sistema e para dar mais sentido ao contexto e funcionalidade de CRUD de usuários.

Modelo ML CNN

Para o reconhecimento de face foi usado o tensorflow para criação de um rede CNN. Onde foi treinado para exibição com 7 classes, sendo essas representante dos usuários do sistema.

Arquitetura da rede:

Treinamento da rede

O treinamento da rede deve acontecer a cada cadastro de um novo cliente no sistema. Para os testes foram treinadas 7 classes, com a execução de 10 épocas para imagens com tamanho máximo de 240×240, onde cada classe com pelo menos 200 imagens. Abaixo segue o resultado de execução para cada classe e a confiança.

Firmware

O firmware da placa ESP32-S3 EYE está sendo desenvolvido na linguagem Python, usando o CircuitPython na versão 8.2.2.

A imagem abaixo ilustra compilação do circuitpython para geração do firmware:

Foi utilizado a Mu 1.2 IDE para o desenvolvimento do firmware:

Realizando testes com manipulação de textos e imagens:

Realizando testes com câmera e display:

Realizando testes realizando a conexão Wi-Fi e fazendo requisição para internet:

Apresentação do protótipo

Histórico do desenvolvimento

Na tabela abaixo mostra o histórico de desenvolvimento do projeto:

DataAtividadeStatus
05/04/2023Início de desenvolvimento do protótipo do projetoOK
05/04/2023Estudo do hardware ESP32-S3 EYEOK
14/04/2023Recebimento do kit ESP32-S3 EYEOK
16/04/2023Testes iniciais com ESP32-S3 EYE rodando códigos de exemplo OK
18/04/2023Início de testes com tensorflow lite OK
22/04/2023Estudo para definição da linguagem de programação para ESP32-S3 EYEOK
25/04/2023Testes de exemplos básicos com CircuitPython com uso da câmera e displayOK
02/05/2023Criação do projeto base para implementação do backendOK
05/05/2023Estudo do datasheet dos recursos ESP32-S3 EYEOK
10/05/2023Início de estudo de algoritmos de reconhecimento facial e bibliotecas existentesOK
08/05/2023Inicio de integração dos algoritmos de reconhecimento facial no backendOK
15/05/2023Estudo para aplicar o projeto no framework IDF OK
20/05/2023Implementação dos endpoints do backendOK
28/05/2023Treinamento de modelo lite para reconhecimento e criação de base para testes.OK
31/05/2023Integração com Pix na ESP32-S3 EYE OK
01/06/2023Integração com a ESP32-S3 EYE e o backendOK
15/06/2023Criação do schema do banco de dados para backendOK
20/06/2023Criação das telas exibição no display da ESP32-S3 EYE
Telas de reconhecimento, liberação da catraca e pagamento pix
OK
01/07/2023Inicio de implementação do frontendOK
12/07/2023Configuração da API Pix com sistema backendOK
25/07/2023Testes finais com fluxo completoOK
06/08/2023Gravar vídeo para exibição do protótipoOK
06/08/2023Publicação final do projetoOK

Referências

Anexos

Comentários:
Home » Projetos » Catraca inteligente

EM DESTAQUE

WEBINARS

VEJA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: