Skip to content

Um site de reconhecimento de dígitos de 0 a 9, onde é possível desenhar manualmente o número e o algoritmo de IA irá reconhecê-lo.

License

Notifications You must be signed in to change notification settings

SobrancelhaDoDragao/Digit_Recognizer

Repository files navigation

Digit Recognizer

Implementação do desafio digit recognizer em uma aplicação web

Status: em progresso

Deploy on railway

Tópicos

  1. Sobre o projeto
  2. Como funciona
  3. Tecnologias usadas
  4. Inteligência artificial
  5. Infraestrutura do projeto/fluxo
  6. Telas
  7. Instalar o projeto localmente
  8. Licença

Sobre o projeto

Este é um projeto que tem como objetivo testar na prática o algoritmo de reconhecimento de dígitos desenvolvido durante o desafio do Digit Recognizer MNIST.

A aplicação web consiste em uma área de desenho onde é possível desenhar os dígitos de 0 a 9 manualmente. Em seguida, o algoritmo de IA treinado irá processar o desenho e retornar qual número foi desenhado.

Como Funciona

  1. Acesse o site e selecione a área de desenho.
  2. Desenhe o dígito que deseja reconhecer.
  3. Clique em "Pronto" para que o algoritmo de IA analise o desenho.
  4. O número reconhecido será exibido na tela.

Tecnologias usadas

  • Back-end
    • Python
    • Django
    • Scikit learn
    • Pandas
    • Numpy
  • Front-end
    • Vue.js
    • Javascript
    • Html
    • Css

Inteligência artificial

Para este projeto, eu utilizei o algoritmo Random Forest Classifier, treinado com os dados do conjunto MNIST, que contém 70 mil dígitos manuscritos. O modelo alcançou uma precisão de 96% no conjunto de teste, no entanto, na prática, encontrei muitos erros. Acredito que isso ocorreu devido às diferenças de formato dos dígitos que o algoritmo recebeu. Para melhorar a precisão, planejo aprimorar o pré-processamento dos dígitos.

Escolhi o Random Forest Classifier por sua simplicidade e eficácia. Considerei usar o TensorFlow em conjunto com o Keras, mas não foi possível devido à incompatibilidade da CPU do meu computador com o TensorFlow.

Infraestrutura do projeto/fluxo

Estrutura de pastas

  • digit_recognizer - Pasta onde estão os arquivos vue.js
  • DjangoIA - Pasta onde estão os arquivos do django, aqui são administrados os arquivos estáticos gerados pelo vue.js. Aqui onde o projeto funciona.

Fluxo do programa

Primeiramente, o usuário desenha um dígito de 0 a 9 no canvas e envia os dados. Durante o processo de envio, os dados do canvas são convertidos em formato de imagem usando a função toDataURL(). Em seguida, os dados são enviados para a view PredictDigit(), do Django. Essa função converte a imagem para o espaço de cores RGB, remove espaços em branco ao redor do dígito, redimensiona a imagem para 28 x 28 pixels, converte-a em escala de cinza e transforma-a em um array de números. Então, o modelo faz uma previsão com base nos dados do array e retorna um JSON com o dígito previsto.

Telas

Tela de desenho

Tela do predict

Instalar o projeto localmente

Pré-requisitos

Execute os seguintes comandos

  1. Baixe o repositório no seu computador
  2. Agora abra a pasta DjangoIA pelo terminal
  3. Digite: python -m venv env, para criar um ambiente virtual para instalar as bibliotecas
  4. Ative o ambiente virtual: source env/bin/activate
  5. Agora digite: pip install -r requirements.txt, para instalar as bibliotecas
  6. E finalmente rode o projeto:python manage.py runserver

Licença

The scripts in this project are released under the MIT License

About

Um site de reconhecimento de dígitos de 0 a 9, onde é possível desenhar manualmente o número e o algoritmo de IA irá reconhecê-lo.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published