Neural Network Model for solving captchas in Python
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
Guilherme Rudic 0b4c82ace0 . 6 miesięcy temu
__pycache__ #feat: changing result 6 miesięcy temu
base_letras #feat: Criacao do modelo de Rede Neural para rotulacao e identificacao dos captchas 7 miesięcy temu
captcha_teste #feat: last configs 6 miesięcy temu
README.md #feat: last disclaimer 6 miesięcy temu
captcha_miner.py #feat: last configs 6 miesięcy temu
main.py . 6 miesięcy temu
modelo_treinado.keras #feat: Criacao do modelo de Rede Neural para rotulacao e identificacao dos captchas 7 miesięcy temu
rotulos_modelo.dat #feat: Criacao do modelo de Rede Neural para rotulacao e identificacao dos captchas 7 miesięcy temu
separar_letras.py #feat: last configs 6 miesięcy temu
solve_captcha.py compile false 6 miesięcy temu
testar_modelo.py #feat: Criacao do modelo de Rede Neural para rotulacao e identificacao dos captchas 7 miesięcy temu
tratar_captcha.py #feat: Create function to decode base64 and return captcha, and creating the main.py with the endpoint to receive the request 7 miesięcy temu
treinar_modelo.py #feat: Criacao do modelo de Rede Neural para rotulacao e identificacao dos captchas 7 miesięcy temu

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.