LOC

Instalación de Tesseract OCR en Linux

Instalación de Tesseract OCR en Linux
Tesseract OCR (reconocimiento óptico de caracteres) es un motor de código abierto y un programa de línea de comandos gratuito para extraer texto de imágenes utilizando tecnología y algoritmos de reconocimiento óptico de caracteres. El proyecto está respaldado por Google y, a día de hoy, se considera el mejor motor de OCR de código abierto disponible. Puede detectar y extraer texto en numerosos idiomas con alta precisión.

Instalación de Tesseract OCR en Linux

Tesseract OCR está disponible de forma predeterminada en la mayoría de las distribuciones de Linux. Puede instalarlo en Ubuntu usando el siguiente comando:

$ sudo apt install tesseract-ocr

Las instrucciones detalladas para otras distribuciones están disponibles aquí. Aunque Tesseract OCR está disponible en repositorios de muchas distribuciones de Linux de forma predeterminada, se recomienda instalar la última versión desde el enlace mencionado anteriormente para mejorar la precisión y el análisis.

Instalación de soporte para idiomas adicionales en Tesseract OCR

Tesseract OCR incluye soporte para detectar texto en más de 100 idiomas. Sin embargo, solo obtiene soporte para detectar texto en el idioma inglés con la instalación predeterminada en Ubuntu. Para agregar soporte para analizar idiomas adicionales en Ubuntu, ejecute un comando en el siguiente formato:

$ sudo apt install tesseract-ocr-hin

El comando anterior agregará soporte para el idioma hindi a Tesseract OCR. A veces, puede obtener una mayor precisión y resultados instalando soporte para scripts de idiomas. Por ejemplo, instalar y usar el paquete tesseract para el script de Devanagari "tesseract-ocr-script-deva" me dio resultados mucho más precisos que usar el paquete "tesseract-ocr-hin".

En Ubuntu, puede encontrar los nombres de paquetes correctos para todos los idiomas y scripts ejecutando el siguiente comando:

$ apt-cache búsqueda tesseract-

Una vez que haya identificado el nombre correcto del paquete para instalar, reemplace la cadena "tesseract-ocr-hin" con él en el primer comando especificado anteriormente.

Uso de Tesseract OCR para extraer texto de imágenes

Tomemos un ejemplo de una imagen que se muestra a continuación (tomada de la página de Wikipedia para Linux):

Para extraer texto de la imagen de arriba, debe ejecutar un comando en el siguiente formato:

$ captura de tesseract.salida png -l eng

Ejecutar el comando anterior da el siguiente resultado:

En el comando anterior, "capture.png ”se refiere a la imagen de la que desea extraer el texto. La salida capturada se almacena en la "salida.txt "archivo. Puede cambiar el idioma reemplazando el argumento "eng" con su propia elección. Para ver todos los idiomas válidos, ejecute el siguiente comando:

$ tesseract --list-langs

Mostrará códigos de abreviatura para todos los idiomas admitidos por Tesseract OCR en su sistema. De forma predeterminada, solo mostrará "eng" como salida. Sin embargo, si instala paquetes para idiomas adicionales como se explicó anteriormente, este comando enumerará más idiomas que puede usar para detectar texto (como códigos de idioma de 3 letras ISO 639).

Si la imagen contiene texto en varios idiomas, defina primero el idioma principal seguido de idiomas adicionales separados por signos más.

$ captura de tesseract.salida png -l eng + fra

Si desea almacenar la salida como un archivo PDF con capacidad de búsqueda, ejecute un comando en el siguiente formato:

$ captura de tesseract.salida png -l eng pdf

Tenga en cuenta que el archivo PDF con capacidad de búsqueda no contendrá ningún texto editable. Incluye la imagen original, con una capa adicional que contiene el texto reconocido superpuesto a la imagen. Entonces, si bien podrá buscar texto con precisión en el archivo PDF con cualquier lector de PDF, no podrá editar el texto.

Otro punto que debe tener en cuenta es que la precisión de la detección de texto aumenta enormemente si el archivo de imagen es de alta calidad. Si tiene la opción, utilice siempre formatos de archivo sin pérdida o archivos PNG. Es posible que el uso de archivos JPG no dé los mejores resultados.

Extracción de texto de un archivo PDF de varias páginas

Tesseract OCR de forma nativa no admite la extracción de texto de archivos PDF. Sin embargo, es posible extraer texto de un archivo PDF de varias páginas convirtiendo cada página en un archivo de imagen. Ejecute el siguiente comando para convertir un archivo PDF en un conjunto de imágenes:

$ pdftoppm -png archivo.salida pdf

Para cada página del archivo PDF, obtendrá una "salida-1.png ”,“ salida-2.png ”, y así sucesivamente.

Ahora, para extraer texto de estas imágenes usando un solo comando, tendrá que usar un "bucle for" en un comando bash:

$ por i en *.png; hacer tesseract "$ i" "salida- $ i" -l eng; hecho;

Ejecutar el comando anterior extraerá texto de todos los ".png ”que se encuentran en el directorio de trabajo y almacenan el texto reconocido en“ output-original_filename.txt ”archivos. Puede modificar la parte central del comando según sus necesidades.

Si desea combinar todos los archivos de texto que contienen el texto reconocido, ejecute el siguiente comando:

$ gato *.txt> unido.TXT

El proceso para extraer texto de un archivo PDF de varias páginas en archivos PDF con capacidad de búsqueda es casi el mismo. Debe proporcionar un argumento "pdf" adicional al comando:

$ por i en *.png; hacer tesseract "$ i" "salida- $ i" -l eng pdf; hecho;

Si desea combinar todos los archivos PDF con capacidad de búsqueda que contienen el texto reconocido, ejecute el siguiente comando:

$ pdfunite *.pdf unido.pdf

Tanto "pdftoppm" como "pdfunite" se instalan de forma predeterminada en la última versión estable de Ubuntu.

Ventajas y desventajas de extraer texto en archivos TXT y PDF con capacidad de búsqueda

Si extrae texto reconocido en archivos TXT, obtendrá una salida de texto editable. Sin embargo, se perderá el formato del documento (negrita, cursiva, etc.). Los archivos PDF con capacidad de búsqueda conservarán el formato original, pero perderá las capacidades de edición de texto (aún puede copiar texto sin procesar). Si abre el archivo PDF con capacidad de búsqueda en cualquier editor de PDF, obtendrá imágenes incrustadas en el archivo y no una salida de texto sin procesar. La conversión de archivos PDF con capacidad de búsqueda a HTML o EPUB también le proporcionará imágenes incrustadas.

Conclusión

Tesseract OCR es uno de los motores de OCR más utilizados en la actualidad. Es gratuito, de código abierto y admite más de cien idiomas. Cuando utilice Tesseract OCR, asegúrese de utilizar imágenes de alta resolución y códigos de idioma correctos en los argumentos de la línea de comandos para mejorar la precisión de la detección de texto.

Herramientas útiles para jugadores de Linux
Si le gusta jugar juegos en Linux, es probable que haya utilizado aplicaciones y utilidades como Wine, Lutris y OBS Studio para mejorar la experiencia...
Juegos HD remasterizados para Linux que nunca tuvieron un lanzamiento de Linux antes
Muchos desarrolladores y editores de juegos están creando una remasterización HD de juegos antiguos para extender la vida útil de la franquicia, por f...
Cómo usar AutoKey para automatizar juegos de Linux
AutoKey es una utilidad de automatización de escritorio para Linux y X11, programada en Python 3, GTK y Qt. Usando su funcionalidad de scripting y MAC...