|
|
|
|
|
|
|
|
# captcha-solver |
|
|
# captcha-solver |
|
|
|
|
|
|
|
|
# Neural Network Model for solving captchas in Python |
|
|
|
|
|
|
|
|
Neural Network Model for solving captchas in Python |
|
|
|
|
|
|
|
|
# Instalação de Dependências do Python: |
|
|
|
|
|
|
|
|
## Instalação de Dependências do Python: |
|
|
pip install selenium |
|
|
pip install selenium |
|
|
pip install fastapi |
|
|
pip install fastapi |
|
|
pip install pydantic |
|
|
pip install pydantic |
|
|
|
|
|
|
|
|
pip install numpy |
|
|
pip install numpy |
|
|
pip install scikit-learn |
|
|
pip install scikit-learn |
|
|
|
|
|
|
|
|
# Comando para subir o endpoint: |
|
|
|
|
|
uvicorn main:app |
|
|
|
|
|
|
|
|
## 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". |
|
|
|
|
|
# Não é necessário executar arquivos além de testar_modelo.py para teste do modelo. |
|
|
|
|
|
# Para caso de modificação do modelo, seguir os passos abaixo: |
|
|
|
|
|
|
|
|
## 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", que abrirá o navegador do Chrome e salvará no diretório criado 2000 captchas novos |
|
|
|
|
|
# Obs: É necessário baixar o chromedriver e adicionar no diretório onde fica o python.exe |
|
|
|
|
|
|
|
|
## 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", que tratará todos os captchas do diretório "captcha_images" e os salvará no novo diretório criado |
|
|
|
|
|
|
|
|
### 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", que recortará todas as letras dos captchas tratados e as salvará no diretório "caracteres" |
|
|
|
|
|
# Na pasta "identificado" será salva uma visualização do recorte na imagem inteira |
|
|
|
|
|
|
|
|
### 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. |
|
|
|
|
|
# Abra a pasta caracteres e coloque de 30 a mais exemplos de cada caractere em sua respectiva pasta |
|
|
|
|
|
|
|
|
### 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): |
|
|
|
|
|
# Execute o "treinar_modelo.py", que treinará o novo modelo e o salvará como "modelo_treinado.keras" |
|
|
|
|
|
# A acurácia do modelo pode ser verificada no terminal, utilizando 3 epochs. A taxa de acerto de 95% já é considerada ótima. |
|
|
|
|
|
|
|
|
|
|
|
# Nota: Não aumente o número de epochs além do necessário para evitar overfitting. |
|
|
|
|
|
|
|
|
### 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. |