lunes, 10 de octubre de 2011

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

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 Gscan2pdf. 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:
xSane: http://hatteras-blog.blogspot.com.es/2011/10/escanear-con-ocr-reconocimiento-optico_18.html
u ocrFeeder:  http://hatteras-blog.blogspot.com.es/2011/10/escanear-con-ocr-reconocimiento-optico_28.html



Gscan2pdf:

A) Paquetes necesarios: el paquete del programa: gscan2pdf, un motor de ocr: tesseract-ocr, o gocr  ( gocr es el motor de ocr que se instala por defecto, pero 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  ).

El programa gscan2pdf está en los repositorios de Ubuntu pero podemos instalar el paquete gscan2pdf, de una versión mas moderna, desde http://sourceforge.net/projects/gscan2pdf/files/gscan2pdf/  ( al instalar esta versión se instala también otro motor de ocr: ocropus; con lo cual podríamos usar gscan2pdf con estos tres motores ocr: gorc, tesseract, y ocropus - hay también otro mas: cuneiform - pero después de algunas pruebas he llegado a la conclusión de que el mejor es tesseract, por lo que es con éste motor ocr con el que se explica el tema.)

B) Configuración básica : Este programa se puede abrir y configurar siempre que esté conectado el escáner.  Una vez se inicia el programa Scan2pdf se debe, antes de proceder al escaneo del documento, configurar algunos detalles. Para ello primero hay que hacer click en el botón de escanear ( lo he recuadrado en rojo, en la barra de herramientas )




Tras lo cual se abre una ventana, en la que en la pestaña Opciones de Página se puede seleccionar el Motor de Ocr ( usaremos Tesseract ) y el idioma que queremos que se use para el reconocimiento ( que lógicamente debe de ser el mismo en el que esté el documento ), activamos la casilla "limpiar imágenes" ( para que se ejecute el programa unpaper ) y en opciones seleccionamos las opciones de unpaper.



En la pestaña Mode, seleccionamos el -- Modo de escaneo: seleccionamos True Gray ( es decir en Escala de Grises ; seleccionaremos otro método si el documento es en color ) -- Resolución de Escaneo: seleccionamos un número de resolución, que puede variar en función de la calidad de nuestro escáner ; en mi caso he seleccionado 300 dpi, pero podemos ir haciendo pruebas con otras resoluciones.

En la pestaña Geometria elegimos el tamaño del papel del documento que vamos a escanear, en este caso A4



C) Uso básico con el escaner:

Es necesario que el escáner, o impresora multifunción, esté conectado al pc.

Una vez se ha configurado adecuadamente el programas ( normalmente las configuraciones del programa que hemos hecho anteriormente se guardan y se mantienen en la próxima vez que ejecutemos el programa) se siguen los siguientes pasos:

-- Se inicia el escaneo haciendo click en el botón Escanear, tras lo cual durante un tiempo se abren sucesivamente:  -- una ventana de escaneo, -- ventana de procesamiento de Unpapper, -- ventana de procesamiento de OCR, luego se vuelve a la -- ventana principal de Gscan2pdf.

-- Se cierra la ventana de  Opciones. A continuación podemos hacer una de estas dos cosas:

A) -- Se hace click sobre el texto simple resultado del escaneado y reconocimiento ocr, que aparece en la pestaña OCR-Output, para que se abra una ventana con el texto simple , y se selecciona todo él  para copiarlo y pegarlo en una ventana de un programa de edición de textos, para guardarlo en un nuevo archivo, que posteriormente, una vez hayamos cerrado el scan2pdf,  podremos editar a nuestro gusto con el editor de textos: por ejemplo podemos pegar este texto simple en LibreOffice - writter , editarlo y luego guardarlo en formato .pdf : Archivo->Exportar en formato .pdf



B) -- Desde el la barra de herramientas del programa gscan2pdf -> Archivo-> Guardar:  en varios tipos ( jpeg,png,tiff,pdf,etc, o texto) , entre ellos elegimos en modo pdf, ( ya que si lo guardamos en formato de imagen luego no podremos editarlo si fuera necesario) con lo que se crea un archivo .pdf con una imagen similar a la que aparece en la pestaña Image de la ventana principal del programa scan2pdf.  También está la opción de guardarlo en formato de texto simple, que luego se podría pasar a otro editor de texto mas completo, como LibreOffice para editarlo a nuestro gusto, y guardarlo en formato .pdf





De esta forma obtenemos un archivo .pdf que posteriormente podríamos editar a nuestro gusto con alguno de los métodos que hay para editar archivos .pdf: Manejar archivos .pdf  (LibreOffice + la extensión PdfImport.oxt; o con PdfEdit )

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

D) Uso básico a partir de un archivo de imagen o pdf escaneado anteriormente:

En este caso también se puede usar el programa sin que el escáner esté conectado al pc, y sin que tengamos el documento original en papel.

También se puede hacer un reconocimiento óptico de caracteres a partir de un archivo de imagen .jpeg creado con el programa Simple-Scan (que no tiene capacidad de análisis OCR ) , u  otro tipo de archivo de imagen .png. tiff, etc o .pdf, creado anteriormente al escanear un documento con xSane sin realizar en éste el análisis OCR.

Desde la barra de herramientas del programa:
Archivo->Importar: se elige el archivo de imagen al que se quiere realizar un OCR, y una vez que aparece en la pestaña Image de la ventana principal del programa, se pasa al siguiente paso:
Herramientas->OCR ; se abre una ventana en la que se elige el motor, el idioma y el rango de páginas, y una vez realizado el reconocimiento aparece el resultado en la pestaña OCR-Output de la ventana principal del programa, y se puede proceder de forma similar a como se hace cuando se escanea un documento directamente desde gscan2pdf.

============================

Resumen del uso básico de gScan2pdf: No funciona con solo hacer lo que pone a continuación, si previamente no se han realizado los pasos indicados en los apartados anteriores - A), B) C) y D)


a) Con un documento con solo texto
b) Con un documento con texto e imagen, del que queremos extraer/conservar solo el texto
c) Con un documento con texto e imagen, del que queremos conservar ambos

--  a)  y  b) :  gScan2pdf -> escanear con OCR-> pestaña OCR-output -> copiar texto ->> abrir LibreOffice ( Writter )-> pegar texto -> editarlo a nuestro gusto -> exportarlo como .pdf

-- c)  : gScan2pdf -> escanear con OCR -> pestaña Image -> guardar como archivo .pdf ->> abrir LibreOffice  ( Draw ) -> abrir el archivo.pdf -> editarlo a nuestro gusto -> exportarlo como .pdf

Si gScan2pdf no os funciona o no os gusta, podéis probar:
xSane: http://hatteras-blog.blogspot.com.es/2011/10/escanear-con-ocr-reconocimiento-optico_18.html
u ocrFeeder:  http://hatteras-blog.blogspot.com.es/2011/10/escanear-con-ocr-reconocimiento-optico_28.html

10 comentarios:

  1. Hola yo estoy hacienda pruebas. El reconocimiento de texto lo hace bien. Lo que pasa es que no se cómo pasar el texto reconocido a un archivo de texto. Cada palabra del ocr la reconoce como un rectángulo . Por lo tanto si tengo mil palabras tengo que seleccionar 1000 palabras una por una y hacer copiar pegar.

    Como puedo solucionar esto?

    ResponderEliminar
  2. Hola, me pasa lo mismo, cada palabra del ocr la reconoce pero dentro de un rectangulo y no admite seleccionar todo, copiarlo y pegarlo.
    Si quiero guardar el ocr en forma de texto me dice que es solo de lectura. Podrias aclarar estos puntos.
    En hora buena por tu blog
    Saludos

    ResponderEliminar
  3. Anónimos: no me queda claro en que punto del proceso os ocurre lo que comentáis. Mejor si podéis decirlo con mas detalle. Mirad en el Índice-1 del Blog: hay otros programas ( xSane, y OcrFeeder ) con los que también se puede scanear con reconocimiento óptico de caracteres. O en http://hatteras-blog.blogspot.com.es/search?q=ocr

    ResponderEliminar
  4. Hola otra vez, soy jose, como referencia para entender lo que me esta pasando a mi con gscan2pdf utilizo la descripción de tu misma pagina, esta misma pagina que es la que he utilizado de guía.
    En el apartado Uso básico con el escaner: opción A) -- Se hace click sobre el texto simple resultado del escaneado y reconocimiento ocr, que aparece en la pestaña OCR-Output, para que se abra una ventana con el texto simple (al hacer click no me abre la ventana con el texto simple) a que puede ser debido?

    Gracias de antemano.
    Saludos

    ResponderEliminar
  5. Hola otra vez, soy jose, tendra que ver que el sistema que utilizo yo es linux mint debian edition, realmente hay ciertas diferencias con los graficos que aca se muestran, no se, una idea.
    Saludos

    ResponderEliminar
  6. Uso la versión 1.2.5. No me funciona. Reconoce el texto pero no existe una forma razonable de exportar el reconocimiento ocr a un archivo de texto. La verdad hay servicios online mucho más efectivos que gscan2pdf. Decepción...

    ResponderEliminar
  7. Anónimo: Si te reconoce el texto, la forma que indico en el resumen básico del uso de gscan2pdf me parece bastante razonable: gScan2pdf -> escanear con OCR-> pestaña OCR-output -> copiar texto ->> abrir LibreOffice ( Writter )-> pegar texto -> editarlo a nuestro gusto -> exportarlo como .pdf
    De todas formas, puedes probar otros métodos de OCR con otros programas: xSane: http://hatteras-blog.blogspot.com.es/2011/10/escanear-con-ocr-reconocimiento-optico_18.html
    u ocrFeeder: http://hatteras-blog.blogspot.com.es/2011/10/escanear-con-ocr-reconocimiento-optico_28.html

    ResponderEliminar
  8. En la pestaña ocr output no deja copia el texto. Bueno,,,, si tienes que ir seleccionando palabra por palabra . Si hay 10000 palabras tendré que seleccioñnar 10000 palabras y copiar y pegar 10000 veces..

    Por lo que veo

    ResponderEliminar
  9. Te puedo asegurar que cuando escribí este tema, y los otros sobre ocr, si que funcionaba correctamente. En aquel entonces usaba Gnome2 y una versión mas antigua del gscan2pdf ( no te se decir cual era ); no se si esto tendrá algo que ver...cuando instale la próxima Mint 17 Cinnamon volveré a investigar el tema. Si averiguas algo al respecto te agradecería me lo comunicaras.
    Muchas gracias.

    ResponderEliminar
  10. He encontrado este tema: http://geekland.hol.es/extraer-texto-de-imagenes-con-gscan2pdf/ en el que se da otra explicación a gscan2pdf.
    Dado que este tema está escrito con posterioridad al mio, quizás sirva para los que usáis un gscan2pdf mas moderno que el que usaba cuando escribí mi tema.

    ResponderEliminar

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