Neural Network Model for solving captchas in Python
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
Guilherme Rudic af84aa4703 Alterando ordem para carregamento do modelo il y a 6 mois
__pycache__ #feat: changing result il y a 6 mois
base_letras #feat: Criacao do modelo de Rede Neural para rotulacao e identificacao dos captchas il y a 7 mois
captcha_teste #feat: last configs il y a 6 mois
README.md #feat: last disclaimer il y a 6 mois
captcha_miner.py #feat: last configs il y a 6 mois
main.py . il y a 6 mois
modelo_treinado.keras #feat: Criacao do modelo de Rede Neural para rotulacao e identificacao dos captchas il y a 7 mois
rotulos_modelo.dat #feat: Criacao do modelo de Rede Neural para rotulacao e identificacao dos captchas il y a 7 mois
separar_letras.py #feat: last configs il y a 6 mois
solve_captcha.py Alterando ordem para carregamento do modelo il y a 6 mois
testar_modelo.py #feat: Criacao do modelo de Rede Neural para rotulacao e identificacao dos captchas il y a 7 mois
tratar_captcha.py #feat: Create function to decode base64 and return captcha, and creating the main.py with the endpoint to receive the request il y a 7 mois
treinar_modelo.py #feat: Criacao do modelo de Rede Neural para rotulacao e identificacao dos captchas il y a 7 mois

README.md

captcha-solver

Neural Network Model for solving captchas in Python

Instalação de Dependências do Python:

  • pip install selenium
  • pip install fastapi
  • pip install pydantic
  • pip install opencv-python-headless # Para cv2
  • pip install tensorflow
  • pip install imutils
  • pip install numpy
  • pip install scikit-learn

Execução:

Executar o ‘uvicorn main:app’ para subir o endpoint.

Atenção:

O Modelo de Rede Neural já está treinado e salvo como “modelo_treinado.keras”. Sendo assim, não é necessário executar quaisquer arquivos que não seja o ‘testar_modelo.py’ para teste do modelo.

Treinamento do Modelo:

Passo 1 - Mineração de Captcha:

  • Crie um diretório novo chamado “captcha_images”.
  • Execute o arquivo ‘captcha_miner.py’, ao executar esse arquivo será aberto o navegador do Chrome e serão salvos no diretório criado 2000 captchas novos. Obs: É necessário baixar o chromedriver e adicionar no diretório onde fica o python.exe (link com instruções).

Passo 2 - Tratamento das imagens:

  • Crie um diretório novo chamado “captcha_tratado”.
  • Execute o arquivo ‘tratar_captcha.py’, ao executar esse arquivo todos os captchas do “captcha_images” serão tratados e salvos no novo diretório criado.

Passo 3 - Separação das Letras:

  • Crie um diretório chamado “caracteres” e outro chamado “identificado”.
  • Execute o arquivo ‘separar_letras.py’, ao executar esse arquivo todos os captchas tratados serão recortados nas regiões das letras e salvos no diretório “caracteres”. Na pasta “identificado” será salvo uma visualização do recorte na imagem inteira.

Passo 4 - Rotulação dos Caracteres existentes:

  • Manualmente, dentro da pasta “base_letras”, crie um diretório para cada caractere existente nos captchas (o diretório deve ter o nome do caractere), letras, números etc, caso não exista ainda.
  • Abra a pasta caracteres e coloque de 30 a mais exemplos de cada caractere em sua respectiva pasta.

Passo 5 - Treinar o Modelo (IA):

  • Basta executar o ‘treinar_modelo.py’ que o novo modelo será treinado e salvo como “modelo_treinado.keras”. Ao executar o ‘treinar_modelo.py’, é possível verificar a acurácia (taxa de acerto) do modelo no terminal, utilizando 3 epochs chegamos em uma média de 95%, esse parâmetro define quantas vezes o modelo será treinado. Não é recomendável aumentar, pois o resultado de 95% de acerto já é considerado ótimo. Uma taxa maior do que isso é considerada overfiting, que seria quando o Modelo(IA) decora os resultados do treinamento ao invés de aprender, neste caso o Modelo fica inútil pois não é capaz de identificar dados/captchas novos.