viernes, 28 de octubre de 2011

Escanear con OCR (Reconocimiento Óptico de Caracteres): OcrFeeder

Un programa para el Reconocimiento Óptico de Caracteres (en inglés OCR)  es una aplicación dirigida a la digitalización de textos. Identifica automáticamente símbolos o caracteres que pertenecen a un determinado alfabeto/idioma, a partir de una imagen para almacenarla en forma de datos con los que podremos interactuar mediante un programa de edición de texto o similar. En este tema voy a explicar como hacerlo con el programa OcrFeeder. Lógicamente hay que tener bien instalado y configurado el escáner o la función de escáner de una impresora multifunción.

Además del modo de hacer un OCR  que explico en este tema, también se puede hacer como lo explico con gscan2pdf: http://hatteras-blog.blogspot.com.es/2011/10/escanear-con-ocr-reconocimiento-optico.html y xSane: http://hatteras-blog.blogspot.com.es/2011/10/escanear-con-ocr-reconocimiento-optico_18.html

OcrFeeder:

1) Paquetes necesarios:

Aquí están los últimos paquetes .deb para ocrfeeder  (la versión ocrfeeder_0.7.5-1_all.deb permite importar desde un pdf, desde una imagen, o desde el escáner ) http://mirror.fcaglp.unlp.edu.ar/pub/ubuntu/pool/universe/o/ocrfeeder/

Además del paquete para instalar el programa, si queremos usar el motor de Ocr tesseract debemos instalar los paquetes: tesseract-ocr, o gocr  (en este tema vamos a usar el motor tesseract-ocr ) y uno o varios paquetes para el reconocimiento en un idioma en concreto:  tesseract-ocr-spa  y tesseract-ocr-eng ( para reconocimiento de caracteres en español e inglés ; si fuera necesario se pueden instalar mas paquetes para otros idiomas. ), unpaper ( es una herramienta de post-procesamiento de las hojas de papel escaneados, especialmente para las páginas de los libros que han sido escaneados desde fotocopias. El objetivo principal es hacer que las páginas escaneadas sean mas legibles en pantalla después de la conversión a PDF. Además, unpaper puede ser útil para mejorar la calidad de las páginas escaneadas antes de realizar el reconocimiento óptico de caracteres  ).

-----------------------------------------------------

2) Opciones del programa:

== Editar motores OCROcrFeeder ->Herramientas->Motores de OCR: se abre una ventana en la que se puede detectar, eliminar, añadir o editar los motores ocr disponibles instalados en el sistema. Por defecto el programa usa en el OCR el idioma ingles (es decir el paquete tesseract-ocr-eng) , aunque tengas todo el sistema en español y hayas instalado el paquete tesseract-ocr-spa; para "obligar" al programa a usar el español, en Argumentos del motor hay que poner: $IMAGE $FILE -l spa; cat $FILE.txt ; rm $FILE ( el argumento - l spa es el que hace que se use el español; si queremos escanear un documento en ingles hay que sustituirlo por: -l eng ):
Se puede poner como argumento, para cambiar el idioma en el que se hará el escaneo ocr:
$IMAGE $FILE -l spa; cat $FILE.txt ; rm $FILE si quiero hacer el OCR usando el español, o
$IMAGE $FILE -l eng; cat $FILE.txt ; rm $FILE si quiero hacer el OCR usando el ingles.


------------------------------



== Unpaper: OcrFeeder->Herramientas->Unpaper: se abre una ventana en la se puede gestionar las opciones de Unpaper ( usar los valores predeterminados )

== Otras opciones del programa: OcrFeeder->Editar->Preferencias: se abre una ventana con tres pestañas, en la que se puede editar:

- - pestaña General:  <> carpeta temporal  <> colores usados por el programa para:  # área de relleno del texto ( yo he elegido color verde ), # área de tachado del texto ( color amarillo ) # área de relleno de la imagen ( color rojo)

- - pestaña Herramientas: <> ruta de Unpaper  <> elegir el motor Ocr favorito (elegimos tesseract )  <> preprocesado de la imagen: # corregir inclinación de imágenes y # preferencias de Unpaper: elegir los valores predeterminados.

- - pestaña Reconocimiento: opciones del reconocimiento, como se ve en la imagen.



-----------------------------------------------------

3) Uso básico con un archivo escaneado previamente: (para extraer el texto de un archivo con texto e imagen )

Para este uso del programa no hace falta que el escáner (o impresora multifunción )  esté conectado al pc.

Abrimos: OcrFeeder -> Archivo -> Importar Pdf (si queremos hacer un OCR a un archivo .pdf  )  o Añadir Imagen ( si queremos hacer un OCR sobre un archivo de imagen: .jpag, png, tif, etc) : elegimos el archivo con el que queremos trabajar, y luego hacemos click sobre el icono de la barra de herramientas:  detectar y reconocer automáticamente todas las páginas  ( en recuadro en rojo).



En la Barra de Herramientas ->Herramientas->Unpaper: una vez se abre la ventana siguiente, se da en el botón Vista Previa y una vez que aparece la imagen correspondiente se aplican las opciones que queramos ( yo selecciono: predeterminado ) , y luego damos a Aceptar.



Tras lo anterior se vuelve a la pantalla principal del programa.

# Seleccionamos Tipo Texto, en la ventana derecha del programa (enmarcado en verde en la imagen )

# Seleccionamos manualmente, moviendo los bordes del área con el cursor del ratón, las distintas áreas de texto sobre las que queremos realizar el OCR.



# Seleccionamos una de las áreas de texto y , tras comprobar que el motor de ocr es Tesseract, y damos al botón OCR (ambas opciones señaladas en la imagen en verde )

# Seleccionamos la pestaña Texto: aparece el texto analizado, al que podemos pasar un corrector ortográfico: Herramientas->Comprobación Ortográfica ( o tecleando Mayusc+F7 )

# Seleccionamos la pestaña Estilo: en donde elegimos: <> el tipo de carácter tipográfico <> el tamaño de la fuente tipográfica  <> el modo de alineación y <> el espaciado, que queramos que tenga el texto una vez que lo exportemos a LibreOffice en un archivo .odt

# Repetimos estos pasos para todas y cada una de las áreas de texto. También repetimos todos los pasos si el archivo que hemos abierto tiene mas de una página.

# Y posteriormente hacemos click en el icono de la barra de herramientas:  Exportar a ODT ( recuadrado en azul) , con ello se crea un archivo .odt editable con LibreOffice .

----------------------------------------------

4) Uso básico escaneando un documento: (para extraer el texto de un archivo con texto e imagen )


Para este uso del programa si hace falta que el escáner (o impresora multifunción )  esté conectado al pc.

En la Barra de Herramientas -> Archivo -> Importar página del escáner

Una vez realizado el escaneo del documento y tengamos en la ventana principal del programa la página escaneada, procederemos sobre ella del mismo modo que se indicó en el apartado 3) "Uso con un archivo escaneado previamente"

----------------------------------------------

Se puede descargar un manual de OcrFeeder, en ingles, desde: http://www.mediafire.com/?mlzq09wwqzu8zq5

-----------------------------------------------

7 comentarios:

  1. Hacía tiempo que intentaba usar ocfreader en lucid, y nunca me daba buen resultado. Ahora he visto que el problema era la configuración en idioma español. ¡Gracias!.
    Por cierto, ayer me pasé a lmde, que va mil veces más rápido que lucid. Estoy asombrado.

    ResponderEliminar
  2. Muchísimas gracias por la explicación, me ha servido a la perfección sobretodo subiéndole por lotes la resolución de las imágenes.

    ResponderEliminar
  3. Hola:

    Soy mas que novicia, pero según he entendido, estas aplicaciones , solo se pueden usar en linux? es posible con XP o Windows7?

    Gracias,

    ResponderEliminar
  4. Pepa:
    Pues como hace mucho tiempo que no uso windows...no te puedo ayudar mucho mas. Pero así como con linux, a través de wine, se pueden ejecutar algunas aplicaciones de windows, al revés, que yo sepa no se puede; eso si también hay aplicaciones que tienen versiones para linux y para windows. Pregunta en foros de windows

    ResponderEliminar
  5. Gracias por el magnifico tutorial. Había detectado mi problema al usar solo ingles pero he sido incapaz de conseguir enmendarlo hasta que he leído este aporte, otra vez, gracias.

    ResponderEliminar
  6. Por favor habla EN ESPAÑOL, NO SE ENTIENDE NADA!

    ResponderEliminar
  7. Monica:
    ¿?
    Siento que no me entiendas...pero el tema esta escrito en Español.
    Otros lectores si que lo han entendido.

    ResponderEliminar

A la vez que haces un comentario, por favor da una puntuación al tema: malo, normal, bueno o muy bueno.
Gracias.