Este projeto é uma solução completa para automação e resolução de CAPTCHAs utilizando inteligência artificial. Agora, o sistema suporta tanto CAPTCHAs de tamanho fixo (usando CNN) quanto de tamanho variável (usando CRNN com CTC Loss). O fluxo cobre desde a coleta de dados, preprocessamento automático, aumento de dados, treinamento, avaliação, exportação para dispositivos móveis e interface gráfica para uso prático.
├── analysis/
│ └── plot_training.py
├── captcha_generator/
│ ├── generate_captcha.py
│ ├── fonts/
│ │ └── DejaVuSans.ttf
│ └── output/
├── dataset/
│ ├── test/
│ └── train/
├── notebooks/
│ ├── error_analysis.ipynb
│ └── exploratory_analysis.ipynb
├── src/
│ ├── __init__.py
│ ├── augment.py
│ ├── collector.py
│ ├── evaluate.py
│ ├── export.py
│ ├── gui_app.py
│ ├── model_crnn.py
│ ├── model.py
│ ├── predict.py
│ ├── preprocess.py
│ ├── train_ctc.py
│ └── train.py
├── captcha_model.h5
├── captcha_model.tflite
├── LICENSE
├── README.md
├── run_all.py
├── training_history.npy
pip install tensorflow keras opencv-python numpy matplotlib albumentations pillowO fluxo principal do projeto é:
- Coleta de dados: Captura manual de CAPTCHAs rotulados para criar o dataset.
- Preprocessamento: As imagens são convertidas para tons de cinza, redimensionadas, binarizadas e suavizadas para facilitar o reconhecimento.
- Aumento de dados (Augmentation): Aplica distorções e filtros para simular variações e aumentar a base de dados.
- Treinamento dos modelos: Dois modelos são treinados:
- CNN: Para CAPTCHAs de tamanho fixo (5 caracteres).
- CRNN + CTC Loss: Para CAPTCHAs de tamanho variável.
- Avaliação: Mede a acurácia dos modelos comparando as predições com os rótulos reais.
- Exportação: Converte o modelo treinado para o formato
.tflitepara uso em dispositivos móveis. - Interface gráfica: Permite ao usuário selecionar uma imagem e ver o resultado da predição.
- Análise de dados e erros: Notebooks Jupyter para explorar o dataset e analisar o desempenho dos modelos.
Execute o script para coletar imagens de CAPTCHA e rotulá-las manualmente:
python src/collector.pyAs imagens serão salvas em dataset/train/ com o nome do arquivo igual ao texto do CAPTCHA.
O preprocessamento é feito automaticamente durante o carregamento dos dados para treinamento e predição.
Implemente ou adapte o script src/augment.py para aumentar o conjunto de dados com variações das imagens originais.
Para treinar o modelo CNN (fixo em 5 caracteres):
python src/train.pySaída: captcha_model.h5
Para treinar o modelo CRNN (comprimento variável):
python src/train_ctc.pySaída: captcha_crnn.h5
Avalie o desempenho do modelo CNN:
python src/evaluate.pyFaça a predição do texto de um CAPTCHA a partir de uma imagem:
python src/predict.py caminho/da/imagem.pngAbra a interface gráfica para selecionar uma imagem e ver o resultado da IA:
python src/gui_app.pyConverta o modelo .h5 para .tflite para uso em apps móveis:
python src/export.pyUtilize os notebooks para:
- Explorar os dados:
notebooks/exploratory_analysis.ipynb - Analisar erros e acurácia:
notebooks/error_analysis.ipynb
Para executar todas as etapas (exceto coleta manual) em sequência:
python run_all.py- Uso de OCR + aprendizado semi-supervisionado
- Treinamento com mais dados rotulados via serviço externo (2Captcha, AntiCaptcha)
- Adição de quantização na exportação
.tflite - Versão com FastAPI para inferência web
Este projeto foi estruturado para aprendizado e automação de CAPTCHAs com inteligência artificial e é mantido por [Israel Neto].
Pronto para usar ou expandir com base nas suas necessidades!
