OCR en sistemas Linux [cerrado]

14

Siempre he encontrado que la tecnología OCR está detrás de los sistemas de código abierto. También he visto el proyecto Ocropus desde su infancia. He probado lo que he escuchado que es el mejor motor de OCR disponible para Linux, Tesseract , y he encontrado que lamentablemente carece de documentos comerciales. ¿Hay alguna otra implementación de OCR más prometedora? ¿Qué pasa con el objetivo aún más esperanzador para interpretar la escritura a mano? ¿Qué es posible en los sistemas * nix en este campo?

jjclarkson
fuente
1
¿Debería migrar esto a softwarerecs?
Jeff Schaller
@Jeff probablemente no, dado que tiene casi siete años. Mucho ha sucedido desde entonces. Algunos en OCR ... ;-)
roaima

Respuestas:

4

Tesseract

A partir de 2018, el mejor software de OCR de código abierto disponible es Tesseract 4 (beta) con su nuevo modelo de OCR de red neuronal LSTM . Su rendimiento OCR es mucho mejor que el modelo OCR anterior utilizado en la versión 3.

Ejemplo (producir un archivo PDF output.pdfcon una capa de texto para un documento alemán escaneado):

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

Imprima el texto reconocido en stdout:

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

Lista de idiomas instalados:

$ tesseract --list-langs

El soporte para muchos idiomas / script está disponible en forma de conjuntos de datos capacitados descargables , por ejemplo, incluso hay un conjunto de datos para Fraktur.

Con el nuevo modelo LSTM, Tesseract se inspira en el proyecto de investigación OCRopus .

La versión 3 de Tesseract funciona relativamente mal incluso en imágenes de entrada de buena calidad, es decir, a menudo detecta falsamente caracteres individuales en píxeles de polvo (fuera de cualquier contexto textual) e introduce fácilmente errores de caracteres únicos en palabras conocidas.

Cuneiforme

El rendimiento de OCR cuneiforme no es tan malo, pero no se mantiene activamente (última versión en 2011, versión 1.1) y se bloquea fácilmente y tiene algunos otros problemas:

Puede deshabilitar el algoritmo de diseño de esta manera:

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

( -lespecifica el idioma del documento fuente)

ocrad

$ ocrad -F utf8 image-0001

El texto se imprime por defecto en stdout.

En un documento comercial, se perdió una palabra subrayada, donde cuneiforme / tesseract / gocr no.

gocr

$ gocr image-0001

El texto se imprime por defecto en stdout.

Hardware

Sane tiene muy buen soporte para muchos escáneres de alimentación automática de documentos (ADF), por ejemplo, para los de Avision y Fujitsu .

Con Sane se incluye el scanimageprograma de línea de comandos que puede usar para construir tuberías de escaneo con secuencias de comandos (por ejemplo, mi adf2pdf.pysecuencia de comandos).

maxschlepzig
fuente
Traté de cuneiforme. Funciona bien si necesita reconocer la imagen escaneada (no las fotos). Usé Yagf como GUI.
Sergei
3

Encontré una pregunta similar sobre StackOverflow y Asprise OCR SDK , uno de los productos comerciales vinculados , cuenta con una versión de Linux.

Larry Smithmier
fuente
Si bien este enlace puede responder la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden volverse inválidas si la página vinculada cambia. - De la opinión
Thomas
1
@Thomas el enlace es la única respuesta posible ya que el enlace apunta a una herramienta específica según lo solicitado por el OP. No todas las respuestas de solo enlace son malas. Esto le da el nombre de una pieza específica de software y un enlace a su página web. Incluso si el enlace se rompe, aún debería poder encontrarlo desde el nombre.
terdon
1

Existen pocas herramientas populares de línea de comandos de OCR:

  • Tesseract ( Léame , Preguntas frecuentes ) (Python)

    También disponible para: Tesseract .NET , Tesseract iOS

    Un motor OCR que se desarrolló en HP Labs entre 1985 y 1995 ... y ahora en Google. Tesseract es probablemente el motor de OCR de código abierto más preciso disponible.

    Uso:

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

    Ejemplo: hacer que el PDF existente se pueda buscar (OCR) a través de la línea de comandos / script

  • GOCR

    Reconocimiento de caracteres de código abierto. Convierte imágenes escaneadas de texto a archivos de texto. GOCR puede usarse con diferentes front-end, lo que hace que sea muy fácil portar a diferentes sistemas operativos y arquitecturas. Puede abrir muchos formatos de imagen diferentes, y su calidad ha mejorado día a día.

  • OCRopus ™ ( FAQ ) (escrito en Python, NumPy y SciPy)

    El sistema OCR se centra en el uso del aprendizaje automático a gran escala para abordar problemas en el análisis de documentos, con análisis de diseño conectable, reconocimiento de caracteres conectables, modelado estadístico de lenguaje natural y capacidades multilingües.

    El motor OCRopus se basa en dos proyectos de investigación: un reconocedor de escritura a mano de alto rendimiento desarrollado a mediados de los 90 e implementado por la oficina del censo de EE. UU., Y nuevos métodos de análisis de diseño de alto rendimiento.

    OCRopus es un desarrollo patrocinado por Google e inicialmente destinado a esfuerzos de conversión de documentos de alto volumen y alto rendimiento. Esperamos que también sea un excelente sistema de OCR para muchas otras aplicaciones.

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

    Tesseract es un motor de OCR de código abierto C ++. Tessnet2 es un ensamblado .NET que expone métodos muy simples para hacer OCR. Tessnet2 está bajo la licencia Apache 2 (como tesseract), lo que significa que puede usarlo como desee, incluido en productos comerciales.

Otros ya sugeridos: ABBYY CLI OCR para Linux , Asprise OCR .

Lee también:

Para obtener una lista más completa, consulte: Lista de software de reconocimiento óptico de caracteres en Wikipedia.

kenorb
fuente
0

... OCR es más que "solo reconocimiento de caracteres". Manejo de imágenes, preprocesamiento: análisis de página / diseño para encontrar textos, imágenes, tablas o códigos de barras. Para el reconocimiento, debe lidiar con diferentes fuentes, tamaños e idiomas. Esto es importante porque para obtener buenos resultados debe usar diccionarios y definiciones de idiomas. Finalmente, las personas esperan más opciones de exportación que el texto (por ejemplo, XML, RTF o PDF con capacidad de búsqueda). Hay algunas opciones comerciales para los SDK, pero no son baratas y gratuitas.

Recientemente encontré un CLI OCR para Linux de ABBYY . Hay una prueba gratuita de 100 páginas.

tshepang
fuente
0

Si tiene un presupuesto, le recomiendo la CLI de ABBYY FineReader Engine para Linux . Nuestra empresa lo ha estado utilizando en nuestra aplicación web durante un año y planeamos renovar la licencia. Muy buena calidad de reconocimiento, interfaz de línea de comandos, reconocimiento en muchos idiomas.

minaev
fuente
2
Este producto ya se mencionó en una respuesta anterior . ¡Por favor no duplique las respuestas!
David Foerster