Recentemente encontrei o Tesseract e o OpenCV . Parece que o Tesseract é um mecanismo de OCR completo e o OpenCV pode ser usado como uma estrutura para criar um aplicativo / serviço de OCR.
Tentei usar Tesseract em algumas das minhas imagens e sua precisão parece decente. Mais tarde, me deparei com um tutorial muito simples sobre como usar o OpenCV para realizar OCR usando Python e fiquei impressionado. Em poucos minutos, terminei de treinar o sistema e sua precisão era boa. Mas é claro que essa abordagem significa que preciso treinar meu sistema extensivamente usando um grande conjunto de treinamento.
Minhas perguntas específicas são as seguintes:
- Como escolher entre o Tesseract e o OpenCV para construir um aplicativo OCR personalizado?
- Existem conjuntos de dados de treinamento disponíveis para Tesseract para diferentes idiomas. O OpenCV tem algo semelhante para que eu não tenha que começar a trabalhar para obter OCR?
- Qual é o melhor para uma aplicação comercial pretensiosa?
Alguma sugestão?
OCR accuracy tests
e você encontrará alguns gráficos. E por falar em aplicativos móveis, a maioria deles usa tesseract. Mas se você se importar em baixar alguns deles, verá que os resultados são um pouco diferentes das promessas. Eles geralmente fazem uma demonstração em vídeo em um ambiente cuidadosamente controlado e postam no youtube, mas à solta, se você escanear uma página / receita / cartão / qualquer coisa, você obterá alguns resultados engraçados.Respostas:
Tesseract é um mecanismo de OCR. É usado, trabalhado e financiado pelo Google especificamente para ler texto de imagens, realizar segmentação de documentos básicos e operar em entradas de imagens específicas (uma única palavra, linha, parágrafo, página, dicionários limitados, etc.).
O OpenCV, por outro lado, é uma biblioteca de visão computacional que inclui recursos que permitem realizar algumas extrações de recursos e classificação de dados. Você pode criar um classificador e segmentador de letras simples que executa OCR básico, mas não é um mecanismo de OCR muito bom (eu fiz um em Python antes do zero. É realmente impreciso para entrada que se desvia de seus dados de treinamento).
Se você deseja obter uma compreensão básica de como o OCR é difícil, experimente o OpenCV. Tesseract é para OCR real .
fonte
0
como um8
(no total de $ 20,00). Eu admito que o dígito foi difícil até mesmo para eu decifrar, mas eu não tinha certeza do que mais pode ser feito para adaptar o Tesseract a essas situações ou talvez introduzir um componente de aprendizado se eu tiver uma base de usuários ativa.Eu sou o autor daquele tutorial de reconhecimento de dígitos que você mencionou, e eu diria que não é um substituto para o tesserato.
Tesseract é um motor de OCR realmente bom, pode ser o melhor motor de OCR OpenSource.
O tutorial que você mencionou é apenas uma tentativa de entender o funcionamento mais simples do OCR.
Portanto, se você estiver procurando por um aplicativo OCR, recomendo que você use o OpenCV para pré-processar a imagem e, em seguida, aplique o mecanismo tesseract.
fonte
Os dois podem ser complementares. Se você leu o artigo sobre OpenCV: https://github.com/tesseract-ocr/docs/blob/master/tesseracticdar2007.pdf
Ele destaca que "Uma vez que a HP desenvolveu de forma independente a tecnologia de análise de layout de página que foi usada em produtos, (e, portanto, não foi lançada para código aberto), o Tesseract nunca precisou de sua própria análise de layout de página. O Tesseract, portanto, assume que sua entrada é uma imagem binária com regiões de texto poligonais opcionais definidas. "
Este tipo de tarefa pode ser executado pelo OpenCV e a imagem resultante entregue ao Tesseract. Você pode encontrar uma amostra desse tipo de código no repositório Git: https://github.com/Itseez/opencv_contrib/tree/master/modules/text/samples As amostras usam APIs do Tesseract para fazer conversão de imagem em texto.
fonte
OpenCV é uma biblioteca para CV , usada para analisar e processar imagens em geral. Tesseract é uma biblioteca para OCR , que é um subconjunto especializado de CV dedicado a extrair texto de imagens.
De OpenCV.org
Do Tesseract Github :
fonte