- ResNet-50 no Hugging Face
- NumPy
- OpenCV Python
- Pillow
- PyTorch
- Transformers
- Funções de momentos e Hu Moments no OpenCV
Para executar o script extractor.py, instale um ambiente Python e as dependências abaixo.
- Python 3.10 ou superior
pipatualizado- Conexão com a internet na primeira execução, para baixar o modelo
microsoft/resnet-50do Hugging Face
Execute:
pip install --upgrade pip
pip install numpy opencv-python pillow transformers torchO script tenta usar torch_directml primeiro, mas isso é opcional e normalmente só faz sentido em Windows com GPU AMD.
Se quiser instalar esse suporte adicional, use:
pip install torch-directmlNa primeira execução, o transformers vai baixar automaticamente o modelo microsoft/resnet-50. Depois disso, o script gera os arquivos de saída na raiz do projeto.
Carrega a imagem em escala de cinza, aplica binarização com Otsu, calcula os 7 Momentos de Hu e cria histogramas horizontal e vertical. O resultado é um vetor com 71 atributos manuais que representam forma e distribuição dos pixels.
Abre a imagem em RGB, aplica o pré-processamento do AutoImageProcessor e extrai um vetor de características com a ResNet-50. O retorno é o vetor pooler_output da rede, com 2048 valores, usado como representação automática da imagem.
Percorre uma base de imagens, aplica a função de extração recebida e salva cada amostra em um arquivo .txt no formato caracteristicas + rotulo. Quando rotulo_por_subpasta=True, o rótulo é obtido pelo nome da pasta; quando False, o rótulo é extraído do início do nome do arquivo.
Executa o pipeline completo e gera os 6 arquivos de saída:
ocr_treino_handcrafted.txtocr_treino_non_handcrafted.txtocr_teste_handcrafted.txtocr_teste_non_handcrafted.txtmeses_todo_handcrafted.txtmeses_todo_non_handcrafted.txt