Skip to content

felipe-sant/mnist-classifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖Classificador MNINT👾

React typescript python jest tensorFlow

Esta aplicação permite ao usuário desenhar um número na tela, e utiliza Inteligência Artificial para tentar adivinhar qual foi o número desenhado. O projeto faz uso de um classificador baseado no dataset MNIST, um modelo de aprendizado de máquina amplamente utilizado para reconhecer dígitos manuscritos em imagens.

Acesse a aplicação aqui.

🎯 Objetivos

Este projeto integra um conjunto de iniciativas voltadas para o aprendizado em Inteligência Artificial. O foco principal é o desenvolvimento de competências em deep learning, e os objetivos a seguir refletem as metas já alcançadas e as que ainda estão em progresso:

  • Desenvolvimento de uma inteligência artificial funcional;
  • Elaboração de scripts e manipulação de datasets para aprendizado de máquina;
  • Implementação de rotas de comunicação entre a API e a IA;
  • Exploração da comunicação entre diferentes aplicações utilizando linguagens distintas;
  • Geração de imagens no frontend utilizando o Canvas;
  • Aprendizado sobre o envio de imagens via HTTP;

🏗️ Estrutura do Projeto

O projeto está organizado em três aplicações distintas, cada uma com uma responsabilidade específica:

Frontend

Esta aplicação, desenvolvida em React, é responsável pela interface com o usuário e pela integração com as demais partes do projeto. Utiliza o Canvas para renderizar o componente de lousa, permitindo ao usuário desenhar livremente. Toda a lógica de interação é gerenciada via Context API. A imagem desenhada é convertida para o formato .png e enviada ao backend, que retorna a previsão do número reconhecido pelo modelo de IA, exibindo ao usuário o resultado mais provável.

Ver repositório

Backend

Esta camada, construída com Express, faz a ponte entre o usuário e a Inteligência Artificial. Sua principal função é intermediar a comunicação, recebendo as imagens do frontend por meio da rota api/ia/predict via método POST e encaminhando-as para o serviço de IA. Dessa forma, ela traduz as requisições entre o frontend e a camada de inteligência artificial, garantindo o fluxo correto de informações entre ambas.

Ver repositório

Inteligência Artificial (AI)

Nesta aplicação, foi utilizado TensorFlow para o desenvolvimento do modelo de IA, o dataset MNIST para treinamento e validação, e FastAPI para expor os endpoints de comunicação. O projeto conta com três scripts principais: um para criação e treinamento do modelo, outro para testes e um terceiro para definição das rotas de comunicação. Ao receber uma imagem do backend, a aplicação utiliza o modelo treinado para prever qual número foi desenhado, retornando ao backend o valor com a maior probabilidade.

Ver repositório


developed by @felipe-sant

About

👾 Este projeto usa Deep Learning (Keras/TensorFlow) para treinar uma rede neural capaz de reconhecer dígitos manuscritos usando o dataset público MNIST.

Topics

Resources

License

Stars

Watchers

Forks

Contributors