
siempre he encontradotecnología OCRestar atrasados en los sistemas de código abierto. También he visto elproyecto ocropusdesde su infancia. Probé lo que escuché que es el mejor motor de OCR disponible para Linux.Teseracto, y lo han encontrado lamentablemente deficiente para documentos comerciales. ¿Existen otras implementaciones de OCR más prometedoras? ¿Qué pasa con el objetivo aún más esperanzador de interpretar la escritura a mano? ¿Qué es posible en los sistemas *nix en este campo?
Respuesta1
Teseracto
A partir de 2020, el mejor software OCR de código abierto disponible esTeseracto 4con su nuevoModelo OCR de red neuronal LSTM. Su rendimiento de OCR es mucho mejor que el del modelo de OCR anterior utilizado en la versión 3.
Ejemplo (producir un archivo PDF output.pdf
con una capa de texto para un documento alemán escaneado):
$ echo page-*.png > input.list
$ tesseract --oem 1 -l deu input.list output pdf
( --oem 1
habilita el motor LSTM)
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/scripts está disponible en forma descargable.conjuntos de datos entrenados, por ejemplo, existe incluso un conjunto de datos para Fraktur.
Con el nuevo modelo LSTM, Tesseract se inspira en elOCRopusproyecto de investigación.
La versión 3 de Tesseract funciona relativamente mal incluso con imágenes de entrada de buena calidad, es decir, a menudo detecta erróneamente caracteres individuales en píxeles de polvo (fuera de cualquier contexto textual) e introduce fácilmente errores de caracteres individuales en palabras conocidas.
Cuneiforme
CuneiformeEl rendimiento del OCR no es tan malo, pero no se mantiene activamente (última versión en 2011, versión 1.1) y falla fácilmente y tiene otros problemas:
- Fallos de segmentaciónconvarios paquetesylanzamientos
- su algoritmo de diseño simplemente está roto, es decir, en documentos de una columna los párrafos a menudo se mezclan aleatoriamente
- no falla en opciones desconocidas
Puede desactivar el algoritmo de diseño de esta manera:
$ cuneiform --singlecolumn -l ger -f text -o foo.txt image-0001
( -l
especifica el idioma del documento fuente)
ocrad
Ocradllamada de ejemplo:
$ ocrad -F utf8 image-0001
El texto se imprime de forma predeterminada en stdout.
En un documento comercial, faltaba una palabra subrayada, mientras que cuneiforme/tesseract/gocr no.
El manual de Ocrad contiene una sección sobrelos algoritmos utilizados, p.ej:
5) Detectar personajes y agruparlos en líneas.
6) Reconocer caracteres (muy ad hoc; un algoritmo por carácter).
7) Corregir algunas ambigüedades (transformar 1.000 en 1.000, etc).
GOCR
GOCRllamada de ejemplo:
$ gocr image-0001
El texto se imprime de forma predeterminada en stdout.
La documentación de GOCR no incluye muchos detalles sobre qué modelos/métodos se utilizan para OCR.
Hardware
Cuerdotiene muy buen soporte para algunos escáneres de alimentación automática de documentos (ADF), por ejemplo, para elUna visionyfujitsuunos.
Con Sane se incluye el scanimage
programa de línea de comandos que puede utilizar para crear canales de análisis con secuencias de comandos (cf., por ejemplo, miadf2pdf.py
guion).
Respuesta2
Encontre unpregunta similar en StackOverflowy elSDK de OCR de Asprise, uno de los vinculadoscomercialproductos, cuenta con una versión Linux.
Respuesta3
... OCR es más que "sólo 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 hay que trabajar con diferentes fuentes, tamaños e idiomas. Esto es importante porque para obtener buenos resultados hay que utilizar diccionarios y definiciones de idiomas. Finalmente, la gente espera más opciones de exportación que texto (por ejemplo, XML, RTF o PDF con capacidad de búsqueda). Existen algunas opciones comerciales para SDK, pero no son baratas ni gratuitas.
Recientemente encontré unCLI OCR para Linux de ABBYY. Hay una prueba gratuita de 100 páginas.
Respuesta4
Si tienes un presupuesto, te lo recomiendo encarecidamente.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.