- Sobre o projeto
- Como funciona
- Tecnologias usadas
- Inteligência artificial
- Infraestrutura do projeto/fluxo
- Telas
- Instalar o projeto localmente
- Licença
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.
- Acesse o site e selecione a área de desenho.
- Desenhe o dígito que deseja reconhecer.
- Clique em "Pronto" para que o algoritmo de IA analise o desenho.
- O número reconhecido será exibido na tela.
- Back-end
- Python
- Django
- Scikit learn
- Pandas
- Numpy
- Front-end
- Vue.js
- Javascript
- Html
- Css
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.
- 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.
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.
- Baixe o repositório no seu computador
- Agora abra a pasta DjangoIA pelo terminal
- Digite:
python -m venv env
, para criar um ambiente virtual para instalar as bibliotecas - Ative o ambiente virtual:
source env/bin/activate
- Agora digite:
pip install -r requirements.txt
, para instalar as bibliotecas - E finalmente rode o projeto:
python manage.py runserver
The scripts in this project are released under the MIT License