Melhor resposta
Eu comecei a recomendar o pytesseract também (que outros já recomendaram), é muito legal.
Embora muitas vezes dependa do seu domínio, pode valer a pena fazê-lo “internamente”.
Se ficar com o python, é bastante simples usar as funções skimage regionprops , rótulo , clear\_border , threshold\_otsu e hog (histograma de gradientes) para alimentar um classificador Chars74k . Em alguns domínios, as bibliotecas de OCR disponíveis não se encaixam muito bem, pois em alguns casos de OCR há recursos específicos em seu conjunto de dados que são um pouco nichos para seu domínio (sinais de rua enviesados de câmeras de painel, tradução de anime com baixo p-frame valor durante a compressão ou entrelaçamento do clone do DVD, artefatos jpeg em varreduras de PDF, etc.).
Ouvi dizer que o OCRopus também pode valer a pena (não o usei pessoalmente), pois ele “ usa tesseract-ocr, mas adiciona análise de layout. ”
Resposta
Isso realmente depende de quão granular / clara sua imagem é.
Um problema recorrente em termos de reconhecimento de padrões, em geral, é a clareza da imagem.
Um desafio constante que sempre volta é o fato de que, embora possamos moderar / grande sucesso com imagens nítidas.
Este não é o caso com imagens que não são claras.
Ou seja, é por isso que temos que ter aprendizado de máquina e aprendizado profundo, para que possamos “filtrar”, o marg de erro em como nossa avaliação é correta.
No entanto, eu acho que, se a sua imagem for nítida, posso recomendar o Tesseract OCR.
Fora isso, você também poderia, tente 4.2. Extração de recursos
Embora, eu gostaria de enfatizar, que, como sempre, raramente há um caminho fácil de “corte claro”.
Sempre vai ser em relação ao tipo de abordagem que você adota, quão matemática, quão granular e quais ferramentas você tem à sua disposição.
Boa sorte.