Extraer texto de un documento escaneado

10

¿Hay alguna forma de seleccionar el texto de un documento escaneado? (la salida es un jpg) ¿Qué tipo de herramientas ofrece Ubuntu para hacer tal tarea? ¿Hay alguna biblioteca que pueda usar en lugar de los binarios de software precompilados para hacer lo mismo? Intenté convertirlo a un .pdf usando Imagemagick y luego intenté seleccionar el texto, que obviamente no funcionó.

Dananjaya
fuente

Respuestas:

9

El nombre de este tipo de procedimiento es OCR (reconocimiento óptico de caracteres). Ese enlace también ofrece un par de opciones:

gocr: un OCR de línea de comando
fuzzyocr - plugin spamassassin para verificar archivos adjuntos de imágenes
libhocr0 - OCR hebreo
ocrad - Programa de reconocimiento óptico de caracteres
ocrfeeder: análisis de diseño de documentos y sistema óptico de reconocimiento de caracteres
ocropus - análisis de documentos y sistema OCR
tesseract-ocr
cuneiforme - sistema de OCR multilingüe 

Y sugiere que Tesseract ( tutorial muy antiguo ) es la mejor opción de estos. Así que pruébalo.

Rinzwind
fuente
3

Hace un tiempo evaluó los diversos paquetes de OCR en Ubuntu, descubrió que Tesseract era el menos malo de ellos (pero lo suficientemente malo) y escribió un script de envoltura para el OCR (ya que Tesseract quiere formatos de entrada oscuros como TIFF). Aquí está mi ~/bin/ocr:

#!/bin/sh
# usage: ocr filename.jpg
if test -z "$1"; then
    echo "usage: ocr filename.jpg [...]"
    echo "needs imagemagick and tesseract-ocr"
    echo "if tesseract fails, check if you've got tesseract-ocr-eng installed"
fi
tmpdir="$(mktemp -d)"
for fn in "$@"; do
  convert "$fn" "$tmpdir/page.tif"
  tesseract "$tmpdir/page.tif" "$tmpdir/page" 2>&1 | grep -v '^Tesseract Open Source OCR Engine$'
  cat "$tmpdir/page.txt"
  cp -i "$tmpdir/page.txt" "${fn%.jpg}.txt"
  rm "$tmpdir/page.tif" "$tmpdir/page.txt"
done
rm -r "$tmpdir"

El preprocesamiento de las imágenes con GIMP (conversión a blanco y negro con la herramienta Umbral) pareció ser de gran ayuda.

Espero que las cosas hayan mejorado desde entonces. Recientemente he visto el nombre de OCR Feeder en publicaciones de blog, lo probaría.

Marius Gedminas
fuente
2

El paquete Tesseract-ocr es la línea de comando. Si desea un programa con una GUI, uso "gscan2pdf" y puede encontrarlo en el Centro de software de Ubuntu.

En gscan2pdf todo lo que necesita hacer es hacer clic en el pequeño icono de escaneo cerca de la parte superior. Creo que te da dos o tres opciones, GOCR, que no es muy bueno, y Tesseract, que funciona admirablemente. Elija Tesseract y desde este punto debe hacer clic en la pestaña correspondiente para poder encontrar la configuración de resolución. Su mejor apuesta es 300 o incluso 600 y Tesseract lo hará bien.

Los documentos escaneados, torcidos o viejos no se convierten bien. ¡Buena suerte!

PD ... Sigo leyendo que Tesseract solo puede leer imágenes TIFF. Este no es el caso para mí. También puedo importar JPG o PNG.

PPS ... perdón por las ediciones! También puede probar OCRFeeder en el centro de software. Sin embargo, todavía tengo que probarlo.

I Heart Ubuntu
fuente
0

Tengo Linux Mint 17.2 x32 Cinnamon. Probablemente estos pasos también funcionarían en Ubuntu 14.04 x32.

  1. Instalar Tesseract OCR sudo apt-get install -y tesseract-ocr tesseract-ocr-eng Puede agregar otros idiomas instalando paquetes adicionales. Esta captura de pantalla es de Synaptic: paquetes de idioma Tesseract en Synaptic

Usando Tesseract

OPCIÓN 1: mediante la línea de comandos, abra el terminal, luego vaya a la carpeta donde guarda los archivos de imagen (jpg, png) y ejecute el comando:

a) para convertir todos los archivos de imagen a texto

for i in *png; do b=`basename "$i" .png`; tesseract -l eng "$i" "$b" text; done

Para fusionar todos los archivos de texto en uno, ejecute un comando cat *.txt >> all.txt

b) para convertir todos los archivos de imagen en archivos hocr (abrir con Firefox)

for i in *png; do b=`basename "$i" .png`; tesseract -l eng "$i" "$b" hocr; done

OPCIÓN 2 - por GUI

a) Instale gImageReader y úselo

sudo add-apt-repository -y ppa:sandromani/gimagereader
sudo apt-get update
sudo apt-get install -y gimagereader

b) La segunda aplicación es VietOCR. La versión real es 4.0, así que descargue VietOCR-4.0.zip

Descomprima archivos y abra VietOCR.jar por Java:

Open VietOCR by Java Si no tiene Java instalado, puede instalarlo desde el repositorio o puede instalar Oracle Java 8. Pasos para instalar Oracle Java 8 en Ubuntu 14.04

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default

Recomiendo VietOCR, ya que le permite OCR archivos PDF, la conversión masiva también es una opción.

anthony0013
fuente