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.

2.7KB

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.