Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

Image Captcha Recognition API

Packages

absl-py annotated-types anyio asttokens astunparse certifi charset-normalizer click colorama comm debugpy decorator exceptiongroup executing fastapi flatbuffers gast google-pasta greenlet grpcio h11 h5py idna ipykernel ipython jedi joblib jupyter_client jupyter_core keras libclang Markdown markdown-it-py MarkupSafe matplotlib matplotlib-inline mdurl ml-dtypes namex nest-asyncio numpy oauthlib opencv-python opt-einsum optree packaging pandas parso pillow prompt-toolkit protobuf psutil pure-eval pyasn1 pyasn1-modules pydantic pydantic-core Pygments pyparsing python-dateutil python-multipart pytz pywin32 pyzmq requests requests-oauthlib rich rsa scikit-learn scipy six sniffio SQLAlchemy stack-data starlette tensorboard tensorboard-data-server tensorflow tensorflow-estimator tensorflow-intel tensorflow-io-gcs-filesystem termcolor threadpoolctl tornado traitlets typing-extensions tzdata urllib3 uvicorn wcwidth Werkzeug wrapt

Sumário

Treinamento do Modelo de Reconhecimento de Captcha

Este projeto consiste no treinamento de um modelo de rede neural convolucional (CNN) para reconhecer e classificar caracteres em imagens de captcha.

Pré-processamento de Dados

Carregamento das Imagens

As imagens de captcha são carregadas e pré-processadas da seguinte maneira:

  • As imagens são carregadas do caminho especificado no DataFrame.
  • Cada imagem é redimensionada para uma altura e largura padrão de 200x50 pixels.
  • Os valores dos pixels são normalizados para o intervalo [0, 1].

Preparação das Soluções

As soluções de cada captcha são preparadas da seguinte forma:

  • Cada solução (texto) é convertida em uma lista de caracteres.
  • Um conjunto único de caracteres é criado para determinar o número de classes.
  • Cada caractere é mapeado para um número inteiro usando um dicionário.

Divisão do Conjunto de Dados

O conjunto de dados é dividido em conjuntos de treinamento e teste usando uma proporção de 80/20.

Arquitetura do Modelo

O modelo de reconhecimento de captcha utiliza uma arquitetura de rede neural convolucional (CNN) seguida por camadas de redes neurais recorrentes (RNN). Aqui está a descrição da arquitetura:

  1. Camadas Convolucionais: O modelo começa com duas camadas convolucionais, cada uma seguida por uma camada de max pooling. A primeira camada convolucional tem 32 filtros e a segunda tem 64 filtros. Ambas as camadas usam a função de ativação ReLU para introduzir não linearidade.

  2. Camada de Reshaping: Após as camadas convolucionais, os mapas de características são remodelados para uma forma adequada antes de serem passados para as camadas RNN. Isso é feito para garantir que as dimensões dos dados de entrada sejam compatíveis com as expectativas das camadas RNN subsequentes.

  3. Camadas LSTM Bidirecionais: Em seguida, duas camadas bidirecionais de Long Short-Term Memory (LSTM) são empilhadas. A camada LSTM inicial tem 128 unidades, seguida por uma camada LSTM com 64 unidades. Ambas as camadas têm dropout aplicado para evitar o overfitting.

  4. Camada de Saída: A saída das camadas LSTM é passada para uma camada densa com ativação softmax para realizar a classificação dos caracteres. O número de unidades na camada de saída é determinado pelo número de classes de caracteres presentes nos dados de treinamento, mais uma unidade adicional para lidar com os espaços em branco (utilizados para o mecanismo de previsão CTC).

Treinamento do Modelo

O modelo é treinado usando o algoritmo de otimização Adam e a função de perda Connectionist Temporal Classification (CTC). Aqui estão os detalhes do treinamento:

  • Número de épocas: 100
  • Tamanho do lote: None

Avaliação do Modelo

Após o treinamento, o modelo é avaliado usando o conjunto de teste e as métricas de perda e precisão são registradas.

Resultados

A precisão do modelo no conjunto de teste é registrada como Test accuracy: 0.9903846153846154 ou seja 99% de precisão.

API de Reconhecimento de Captchas

Este é um exemplo básico de API desenvolvida usando FastAPI para reconhecimento de captchas. Ela utiliza um modelo treinado para prever a solução de captchas fornecidos como imagens.

Requisitos

Certifique-se de ter Python 3.10.9 instalado em seu sistema.

Instalação

Versão do Python

python==3.10.9

Clone este repositório em sua máquina local

git clone https://github.com/joaopalmeidao/ml_captcha_image.git

Navegue até o diretório do projeto

cd ml_captcha_image

Instale as dependências usando pip

pip install -r requirements.txt

Como Rodar

Após instalar as dependências, você pode iniciar o servidor da API usando o seguinte comando

uvicorn module.server.wsgi:app --reload --port 8000 --host 0.0.0.0

Acesse a documentação da API

http://localhost:8000/docs

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages