OCR em sistemas Linux [fechado]

14

Eu sempre achei a tecnologia OCR atrasada nos sistemas de código aberto. Eu também assisti o projeto Ocropus desde a sua infância. Eu tentei o que ouvi dizer que é o melhor mecanismo de OCR disponível para Linux, Tesseract e o achei muito ausente em documentos comerciais. Existem outras implementações de OCR mais promissoras? E o objetivo ainda mais promissor de interpretar a caligrafia? O que é possível nos sistemas * nix neste campo?

jjclarkson
fonte
1
Isso deve ser migrado para softwarerecs?
Jeff Schaller
@ Jeff provavelmente não, já que tem quase sete anos de idade. Muita coisa aconteceu desde então. Alguns dos que em OCR ... ;-)
roaima

Respostas:

4

Tesseract

A partir de 2018, o melhor software OCR de código aberto disponível é o Tesseract 4 (beta) com seu novo modelo de OCR de rede neural LSTM . Seu desempenho de OCR é muito melhor que o modelo de OCR anterior usado na versão 3.

Exemplo (produza um arquivo PDF output.pdfcom uma camada de texto para um documento alemão digitalizado):

$ echo page-*.png > input.list
$ tesseract --oem 1 -l deu input.list output pdf

Imprima o texto reconhecido no stdout:

$ tesseract --oem 1 -l deu page page-0001.png stdout

Listar idiomas instalados:

$ tesseract --list-langs

O suporte para muitos idiomas / scripts está disponível na forma de conjuntos de dados treinados para download , por exemplo, existe até um conjunto de dados para o Fraktur.

Com o novo modelo LSTM, o Tesseract se inspira no projeto de pesquisa do OCRopus .

A versão 3 do Tesseract apresenta desempenho relativamente ruim, mesmo em imagens de entrada de boa qualidade, ou seja, freqüentemente detecta falsamente caracteres únicos em pixels de poeira (fora de qualquer contexto textual) e introduz facilmente erros de caracteres únicos em palavras conhecidas.

Cuneiforme

O desempenho do OCR cuneiforme não é tão ruim, mas não é mantido ativamente (última versão em 2011, versão 1.1), trava facilmente e apresenta alguns outros problemas:

Você pode desativar o algoritmo de layout da seguinte maneira:

$ cuneiform --singlecolumn -l ger -f text -o foo.txt image-0001

( -lespecifica o idioma do documento de origem)

ocrad

$ ocrad -F utf8 image-0001

O texto é impresso por padrão para stdout.

Em um documento comercial, faltava uma palavra sublinhada, onde cuneiforme / tesserato / gocr não.

gocr

$ gocr image-0001

O texto é impresso por padrão para stdout.

Hardware

A Sane tem um suporte muito bom para muitos scanners de alimentação automática de documentos (ADF), por exemplo, os da Avision e Fujitsu .

Incluído no Sane está o scanimageprograma de linha de comando que você pode usar para criar pipelines de varredura com script (cf. por exemplo, meu adf2pdf.pyscript).

maxschlepzig
fonte
Eu tentei cuneiforme. Funciona bem se você precisar reconhecer a imagem digitalizada (não as fotos). Eu usei o Yagf como uma GUI.
Sergei
3

Encontrei uma pergunta semelhante no StackOverflow e o Asprise OCR SDK , um dos produtos comerciais vinculados , possui uma versão Linux.

Larry Smithmier
fonte
Embora esse link possa responder à pergunta, é melhor incluir aqui as partes essenciais da resposta e fornecer o link para referência. As respostas somente para links podem se tornar inválidas se a página vinculada for alterada. - Avaliação
Thomas
1
@Thomas o link é a única resposta possível, já que o link aponta para uma ferramenta específica, conforme solicitado pelo OP. Nem todas as respostas somente de link são ruins. Isso fornece o nome de um software específico e um link para sua página da web. Mesmo se o link quebrar, você ainda poderá encontrá-lo pelo nome.
terdon
1

Existem poucas ferramentas populares de linha de comando do OCR:

  • Tesseract ( Leia-me , Perguntas frequentes ) (Python)

    Também disponível para: Tesseract .NET , Tesseract iOS

    Um mecanismo de OCR desenvolvido no HP Labs entre 1985 e 1995 ... e agora no Google. O Tesseract é provavelmente o mecanismo de OCR de código aberto mais preciso disponível.

    Uso:

    tesseract [inputFile] [outputFile] [-l optionalLanguageFile] [PathTohOCRConfigFile]
    

    Exemplo: Tornar o PDF existente pesquisável (OCR) via linha de comando / script

  • GOCR

    Reconhecimento de caracteres de código aberto. Ele converte imagens digitalizadas de texto em arquivos de texto. O GOCR pode ser usado com diferentes front-ends, o que facilita a portabilidade para diferentes sistemas operacionais e arquiteturas. Ele pode abrir muitos formatos de imagem diferentes e sua qualidade vem melhorando diariamente.

  • OCRopus ™ ( FAQ ) (escrito em Python, NumPy e SciPy)

    Sistema OCR com foco no uso de aprendizado de máquina em larga escala para resolver problemas na análise de documentos, incluindo análise de layout conectável, reconhecimento de caracteres conectável, modelagem estatística de linguagem natural e recursos multilíngues.

    O mecanismo OCRopus é baseado em dois projetos de pesquisa: um reconhecedor de caligrafia de alto desempenho desenvolvido em meados dos anos 90 e implantado pelo departamento do Censo dos EUA e novos métodos de análise de layout de alto desempenho.

    O OCRopus is development é patrocinado pelo Google e destina-se inicialmente a esforços de conversão de documentos de alto rendimento e alto volume. Esperamos que também seja um excelente sistema de OCR para muitas outras aplicações.

  • Tessnet2 (código aberto, OCR, Tesseract, .NET, DOTNET, C #, VB.NET, C ++ / CLI)

    O Tesseract é um mecanismo de OCR de código aberto C ++. O Tessnet2 é um assembly .NET que expõe métodos muito simples de fazer OCR. O Tessnet2 está sob a licença Apache 2 (como o tesseract), o que significa que você pode usá-lo como quiser, incluído em produtos comerciais.

Outro já sugerido: ABBYY CLI OCR para Linux , Asprise OCR .

Leia também:

Para obter uma lista mais completa, consulte: Lista de software de reconhecimento óptico de caracteres na Wikipedia.

kenorb
fonte
0

... OCR é mais do que "apenas reconhecimento de caracteres". Manuseio de imagens, pré-processamento - análise de página / layout para encontrar textos, imagens, tabelas ou códigos de barras. Para o reconhecimento, você precisa lidar com diferentes fontes, tamanhos e idiomas. Isso é importante porque, para obter bons resultados, é necessário usar dicionários e definições de idioma. Finalmente, as pessoas esperam mais opções de exportação do que texto (por exemplo, XML, RTF ou PDF pesquisável). Existem algumas opções comerciais para SDKs, mas elas não são baratas e gratuitas.

Recentemente eu encontrei um CLI OCR para Linux da ABBYY . Há uma avaliação gratuita de 100 páginas.

tshepang
fonte
0

Se você tiver um orçamento, recomendo fortemente a CLI do ABBYY FineReader Engine para Linux . Nossa empresa o utiliza em nosso aplicativo da web há um ano e planejamos renovar a licença. Qualidade de reconhecimento muito boa, interface de linha de comando, reconhecimento em vários idiomas.

minaev
fonte
2
Este produto já foi mencionado em uma resposta anterior . Por favor, não duplique respostas!
precisa