2
respostas

Erro ao detectar caracteres usando tesseract e ocr

Boa tarde queridos! Estou tentando montar uma automação para pescar sozinho em um jogo, como forma de estudo. As principais tarefas são: [1] Identificar poça de peixe e clicar/ou/apertar F [2] Identificar e monitorar barra de carregamento da pesca [3] Utilizar habilidades para recolher os peixes [4] Construir algum meio para identificar que o peixe foi recolhido e encerrar as habilidades, reiniciando o processo em [1] O código vai bem até [3], porém, estou obstruído em 4. Tentei utilizar o tesseract e ocr para identificar uma posição (recorte/screenshot) do inventário, para que caso haja alteração (+1 peixe coletado - 25/34 - 26/34) o código entenda que um peixe foi coletado, embora, sem sucesso. O processo da habilidade continua e o algoritmo não se completa. Os erros foram variados. Deixo aqui o código, peço encarecidamente que me ajudem, aceitos quaisquer sugestões. Ps.: Utilizei o ChatGPT como tentativa de solucionar. Código below

https://drive.google.com/drive/folders/1QrvS-8EH6GjTKCD4YgvhKZ8DuNP-KAPg?usp=drive_link
2 respostas

Olá, Renan!

Que projeto interessante você está desenvolvendo! Entendo que a parte de identificar a alteração no inventário pode ser um pouco desafiadora, especialmente quando se trata de reconhecimento de caracteres com OCR (Optical Character Recognition) usando o Tesseract.

Aqui estão algumas sugestões que podem te ajudar a resolver o problema:

  1. Qualidade da Imagem: Certifique-se de que a imagem que você está capturando é de boa qualidade. O Tesseract funciona melhor com imagens nítidas e de alto contraste. Tente ajustar o tamanho da captura de tela ou o contraste para melhorar a legibilidade.

  2. Pré-processamento de Imagem: Antes de passar a imagem para o Tesseract, você pode tentar algumas técnicas de pré-processamento. Isso pode incluir converter a imagem para escala de cinza, aplicar um filtro de desfoque ou ajustar o brilho e o contraste. A biblioteca OpenCV pode ser muito útil para isso.

  3. Configurações do Tesseract: Às vezes, ajustar as configurações do Tesseract pode melhorar o reconhecimento. Por exemplo, você pode especificar o modo de página (--psm) que melhor se adapta ao seu caso. Para números, o modo --psm 7 (tratando a imagem como uma única linha de texto) pode ser útil.

  4. Verificação de Erros: Após o OCR, você pode implementar uma verificação de erros para garantir que o texto reconhecido faz sentido. Por exemplo, se você espera um número de dois dígitos, pode verificar se o resultado segue esse padrão.

  5. Alternativas ao OCR: Se o OCR continuar a falhar, considere outras abordagens, como verificar mudanças na imagem usando técnicas de comparação de imagens. Isso pode ser feito comparando pixels ou usando histogramas para detectar alterações.

Bons estudos!

Opa Lucas, muito obrigado pelo retorno. Achei curioso o seguinte fato, quando utilizo o Tesseract e o OCR em conjunto para identificar elementos, em uma aba separada, ele consegue capturar com clareza a posição e o elemento gráfico dentro da posição. Quando insiro a mesma estrutura dentro do código principal as ferramentas se tornam insuficientes e não tem, nem de perto, o mesmo desempenho. Mas sigo tentando e aplicando as recomendações que me enviou. Se possível, gostaria por gentileza, de lhe incomodar mais um pouquinho e aproveitar de seu conhecimento. Levando em consideração esse tipo de estudo, você me recomendaria quais cursos disponíveis na alura? Forte abraço, amigo!