OCR decente con Linux: xsane + tesseract
July 12th, 2008Hace unas semanas, David comentaba unos pequeños trucos para aquellos que quieran digitalizar su biblioteca.
Uno de los mayores problemas es el reconocimiento fiable del texto. El paquete gocr funciona, pero no demasiado bien. Tal como dice David, si el texto está un poco torcido, los errores resultan terriblemente hilarantes (al menos los primeros… cuando llevas 50 páginas empiezas a desesperarte).
Otro paquete para OCR algo más fiable es Tesseract. Probando la misma página con ambos, y con la página un pelín torcida y a 300ppp de resolución, el primer escaneo con Tesseract da un resultado con apenas 3 fallos, frente a un galimatías bastante potente de gocr.
El problema inicial de Tesseract, es que siendo un programa de línea de comandos, la forma de pasarle argumentos es poco usable:
tesseract fichero.tiff fichero.txt
Para hacer un par de archivos vale, pero cuando tienes una biblioteca en frente, hacer a mano cada página es… farragoso.
Cómo hacer que, no solamente tesseract coja bien los ficheros de entrada y salida, si no que lo haga automaticamente y lo único que tenga que hacer el usuario sea cambiar de página y darle al botón de “scan? Fácil!
Una vez tenemos xsane instalado, instalamos también los paquetes tesseract-ocr, tesseract-data y el paquete correspondiente al idioma en que esté escrito el texto.
Luego tenemos que instalar un pequeño script llamado xsane2tess. Como es un .rpm, necesitaremos instalar el paquete alien desde synaptic, y luego instalar el .rpm:
sudo alien -i tesseract-ocr-xsane-2.01-1mud2008.0.i586.rpm
Tras unos mensajes de advertencia, el paquete se instala bien, y solo quedará crear un nuevo directorio “tmp” en nuestra home, que es donde se almacenará el log del tesseract.
Hecho esto, arrancamos xsane y pulsamos “ALT+s” (o vamos a “Preferences –> Setup”) y buscamos la pestaña OCR. Sustituimos el comando “gocr” por “xsane2tess.sh -l eng”, cambiando el idioma, si es necesario, con las tres letras del nombre del paquete instalado: “spa” para español o “por” para portugués.
Dejamos las opciones “input” y “output” como están.
Ya solamente nos queda decirle a Xsane qué hacer con los resultados de cada escaneo. Si queremos hacerlo manualmente, en el desplegable que aparece al lado del icono del punto de mira pondremos “Viewer”, con lo que cada vez escaneemos algo, se nos abrirá una ventana nueva con la imagen y podremos decidir si guardarlo como imagen, convertirlo mediante OCR o lo que sea.
Para automatizar al máximo el proceso, en el desplegable seleccionaremos “Save”, y en el campo de texto justo debajo, pondremos la ruta al directorio y al fichero que queremos, por ejemplo “/home/usuario/directorio/pagina0001.txt”.
Debajo de la ruta, veremos dos desplegables más, uno con el tipo de fichero que queremos, y que cambiaremos a “TEXT”, y uno con una bota negra, que indica que hacer con los nombres de fichero para escaneos consecutivos. Si lo cambiamos a “+1″, una vez escaneada la página 1 y guardado en “/home/usuario/directorio/pagina0001.txt”, el siguiente fichero será “pagina0002.txt”, luego “pagina0003.txt”… con lo que nos ahorramos un pequeño pero tedioso trabajo de decir qué nombre queremos para cada fichero.
Ahora solamente falta escribir el nombre de fichero correcto para la página a escanear, situar el libro en el scanner, y pulsar “play”.
:)
Actualización: Gracias a David me di cuenta que faltaba un paso. Justo tras instalar el .rpm, debemos crear un nuevo directorio en nuestra home llamado “tmp”. En ese directorio se almacenará el log del tesseract, y parece ser que la cosa no funciona hasta que se crea el directorio.
Ampliación: Para hacer más fácil el transporte del texto escaneado a la plantilla optimizada, una vez tenemos todos los ficheros “pagina*.txt”, hay que asegurarse de eliminar los posibles backups de los ficheros (pagina*.txt~), si es que hemos editado alguno para hacer alguna corrección. En el explorador de ficheros vamos al directorio, pedimos que nos muestre los ficheros ocultos, y los borramos todos.
Ahora ya podemos poner todo el texto junto en un solo fichero con el comando “cat” en la línea de comandos. En el directorio donde tengamos los ficheros, simplemente pondremos
cat pagina* >> completo.txt
Como Tesseract reconoce los saltos de línea, con este comando tendremos un solo fichero con todo el texto, pero cada “página” escaneada estará separada de la siguiente por una línea vacía, facilitando así la maquetación posterior con Open Office.
Hace unas semanas, David comentaba unos pequeños trucos pára aquellos que quieran digitalizar su biblioteca.
Uno de los mayores problemas se o reconocimiento fiable do texto. O paquete gocr funciona, pero não demasiado bien. Tal como dice David, se o texto está um poco torcido, los errores resultan terriblemente hilarantes (ao menos los primeros… cuando llevas 50 páginas empiezas a desesperarte).
Otro paquete pára OCR algo más fiable se Tesseract. Probando a misma página con ambos, y con a página um pelín torcida y a 300ppp de resolución, o primeiro escaneo con Tesseract da um resultado con apenas 3 fallos, frente a um galimatías bastante potente de gocr.
O problema inicial de Tesseract, se que siendo um programa de línea de comandos, a forma de pasarle argumentos se poco usable:
tesseract fichero.tiff fichero.txt
Pára hacer um par de archivos vale, pero cuando tienes uma biblioteca em frente, hacer a mando a cada página se… farragoso.
Cómo hacer que, não solamente tesseract coja bien los ficheros de entrada y salida, se não que lo haga automaticamente y lo único que tenga que hacer o usuario sea cambiar de página y darle ao botón de scan? “Fácil!
Uma vez tenemos xsane instalado, instalamos también los paquetes tesseract-ocr, tesseract-data y o paquete correspondiente ao idioma em que esté escrito o texto.
Luego tenemos que instalar um pequeño script llamado xsane2tess. Como se um .rpm, necesitaremos instalar o paquete aliam desde synaptic, y luego instalar o .rpm:
sudo aliam -e tesseract-ocr-xsane-2.01-1mud2008.0.e586.rpm
Tras unos mensajes de advertencia, o paquete se instala bien, y solo quedará criar um nuevo directorio “tmp” em nuestra homem, que se donde se almacenará o log do tesseract.
Hecho esto, arrancamos xsane y pulsamos “ALTO+s” (ou vamos a Preferences “ –> Setup”) y buscamos a pestaña OCR. Sustituimos o comando “gocr” medo “xsane2tess.sh -l eng”, cambiando o idioma, se se necesario, con las três letras do número do paquete instalado: “spa” pára español ou “medo” pára português.
Dejamos las opciones “input” y “output” como están.
Ya solamente nos fica decirle a Xsane qué hacer con los resultados da cada escaneo. Se queremos hacerlo manualmente, no desplegable que aparece ao lado do icono do punto de olha pondremos “Viewer”, con lo que a cada vez escaneemos algo, se nos abrirá uma ventana nueva con a imagen y podremos decidir se guardarlo como imagen, convertirlo mediante OCR ou lo que sea.
Pára automatizar ao máximo o proceso, no desplegable seleccionaremos “Save”, y no campo de texto justo debajo, pondremos a rota ao directorio y ao fichero que queremos, medo ejemplo “/homem/usuario/directorio/pagina0001.txt”.
Debajo da rota, veremos dois desplegables más, uno con o tipo de fichero que queremos, y que cambiaremos a TEXTO “”, y uno con uma bota negra, que indica que hacer con los números de fichero pára escaneos consecutivos. Se lo cambiamos a +1 “″, uma vez escaneada a página 1 y guardado em /homem/usuario/directorio/pagina0001.txt “”, o siguiente fichero será “pagina0002.txt”, luego “pagina0003.txt”… con lo que nos ahorramos um pequeño pero tedioso trabajo de decir qué número queremos pára a cada fichero.
Ahora solamente falta escribir o número de fichero correcto pára a página a escanear, situar o libro no scanner, y pulsar “play”.
:)
Actualización: Gracias a David me di cuenta que faltaba um paso. Justo tras instalar o .rpm, debemos criar um nuevo directorio em nuestra homem llamado “tmp”. Em ese directorio se almacenará o log do tesseract, y parece ser que a coisa não funciona hasta que se cria o directorio.
Ampliación: Pára hacer más fácil transporto-o do texto escaneado à plantilla optimizada, uma vez tenemos todos los ficheros “pagina.txt”, hay que asegurarse de eliminar los posibles backups de los ficheros (pagina.txt), se se que hemos editado alguno pára hacer alguma corrección. No explorador de ficheros vamos ao directorio, pedimos que nos muestre los ficheros ocultos, y los borramos todos.
Ahora ya podemos poner todo o texto junto num solo fichero con o comando “cat” na línea de comandos. No directorio donde tengamos los ficheros, simplemente pondremos
cat pagina >> completo.txt
Como Tesseract reconoce los saltos de línea, con este comando tendremos um solo fichero con todo o texto, pero a cada “página” escaneada estará separada da siguiente medo uma línea vacía, facilitando así a maquetación posterior con Open Office.
Hace unas semanas, David comentaba unos pequeños trucos # # #el aquellos que quieran digitalizar su bibliotèca.
Uno De los mayores problemas se detlo reconocimiento fisable del texto. Lo paquete gocr fonciona, pero pas demasiado bien. Tal como dice David, se lo texto está un poco torcido, los errores resultan terriblemente hilarantes (al menos los primeros… cuando llevas 50 páginas empiezas a desesperarte).
Otro paquete Para OCR algo más fisable se Tesseract . Probando La misma página con ambos, y con la página un pelín torcida y a 300ppp de resolución, lo primièr escaneo con Tesseract da un resultado con apenas 3 fallos, frente a un galimatías bastante potente de gocr.
Lo problèma inicial de Tesseract, se que siendo un programa de línea de comandos, la forma de pasarle argumentos se poco usable:
tesseract fichero.tiff fichero.txt
Para hacer un par de archivos vale, pero cuando tienes una bibliotèca en frente, hacer a comandi cada página se farragoso..…
Cómo hacer Que, pas solamente tesseract coja bien los ficheros d'intrada y salida, si que non que lo haga automaticamente y lo único que tenga que hacer lo usuario sea cambiar de página y darle al botón de “scan? Fácil!
Una vez tenemos xsane instalado, instalamos también los paquetes tesseract-ocr, tesseract-data y lo paquete correspondiente a l'idiòma en que esté escrito lo texto.
Luego tenemos Que instalar un pequeño script llamado xsane2tess. Còme se un .rpm, necesitaremos instalar Lo paquete alian desde synaptic, y luego instalar çò .rpm:
sudo Alian -e tesseract-ocr-xsane-2.01-1mud2008.0.E586.rpm
Tras unos mensajes De advertencia, lo paquete se instala bien, y solo quedará crear un nuevo directorio “tmp” en nuestra òme, que se donde se almacenará lo log del tesseract.
Hecho esto, arrancamos xsane y pulsamos “Nauta+s” (o vamos a Preferences “ –> Setup”) y buscamos la pestaña OCR. Sustituimos Lo comando “gocr” paur “xsane2tess.sh -L eng”, cambiando l'idiòma, se se necesario, con las tres letras del nombre del paquete instalado: “spa” para español o “paur” para portugués.
Dejamos las opciones “input” y “output” como están.
Ya solamente nos Demòra decirle a Xsane qué hacer con los resultados de cada escaneo. Se queremos hacerlo manualmente, en lo desplegable que aparece al lado del icono del punto de garda pondremos “Viewer”, con lo que cada vez escaneemos algo, se nos abrirá una ventana nueva con la imagen y podremos decidir se guardarlo como imagen, convertirlo mediante OCR o lo que sea.
Para automatizar al máximo lo proceso, en lo desplegable seleccionaremos “Save”, y en lo campo de texto justo debajo, pondremos la rota al directorio y al fichero que queremos, paur ejemplo “/òme/usuario/directorio/pagina0001.txt”.
Debajo De la rota, veremos dos desplegables más, uno con lo tipo de fichero que queremos, y que cambiaremos a TÈXT “”, y uno con una bòta negra, qu'indica que hacer con los de nombres de fichero para escaneos consecutivos. Se lo cambiamos a +1 “″, una vez escaneada la página 1 y guardado en /òme/usuario/directorio/pagina0001.txt “”, Lo siguiente fichero será “pagina0002.txt”, luego “pagina0003.txt”… con lo Que nos ahorramos un pequeño pero tedioso trabajo de decir qué nombre queremos para cada fichero.
Ahora solamente Manca escribir lo nombre de fichero correcto para la página a escanear, situar lo libro en lo scanner, y pulsar “play”.
:)
Actualización: Gracias A David me di cuenta que faltaba un paso. Justo tras instalar çò .rpm, debemos Crear un nuevo directorio en nuestra òme llamado “tmp”. En ese directorio se almacenará lo log del tesseract, y parece èsser que la causa fonciona pas hasta que se crèa lo directorio.
Ampliación: Para hacer más fácil lo transpòrti del texto escaneado al patron optimizada, una vez tenemos todos los ficheros “pagina.txt”, hay Que asegurarse d'eliminar los posibles backups de los ficheros (pagina.txt), Se se que hemos editado alguno para hacer qualque corrección. En lo explorador de ficheros vamos al directorio, pedimos que nos muestre los ficheros ocultos, y los borramos todos.
Ahora ya podemos poner todo Lo texto junto en un solo fichero con lo comando “cat” en la línea de comandos. En lo directorio donde tengamos los ficheros, simplemente pondremos
cat pagina >> Complèti.txt
Còme Tesseract reconoce los saltos de línea, con aquel comando tendremos un solo fichero con todo lo texto, pero cada página “” escaneada estará separada de la siguiente paur una línea vacía, facilitando así la maquetación posteriora con Open Office.
Hace unas semanas, David comentaba unos pequeños trucos para aquellos que quieran digitalizar su biblioteca.
Uno de los mayores problemas se el reconocimiento fiable del texto. El paquete gocr funciona, pero no demasiado bien. Tal como dice David, si el texto está un poco torcido, los errores resultan terriblemente hilarantes (al menos los primeros… cuando llevas 50 páginas empiezas a desesperarte).
Otro paquete para OCR algo más fiable se Tesseract. Probando la misma página con ambos, y con la página un pelín torcida y a 300ppp de resolución, el primero escaneo con Tesseract da un resultado con apenas 3 fallos, frente a un galimatías bastante potente de gocr.
El problema inicial de Tesseract, se que siendo un programa de línea de comandos, la forma de pasarle argumentos se poco usable:
tesseract fichero.tiff fichero.txt
Para hacer un par de archivos vale, pero cuando tienes una biblioteca en frente, hacer a mando cada página se… farragoso.
Cómo hacer que, no solamente tesseract coja bien los ficheros de entrada y salida, si no que lo haga automaticamente y lo único que tenga que hacer lo usuario sea cambiar de página y darle al botón de scan? “Fácil!
Una vez tenemos xsane instalado, instalamos también los paquetes tesseract-ocr, tesseract-data y el paquete correspondiente al idioma en que esté escrito el texto.
Luego tenemos que instalar un pequeño script llamado xsane2tess. Como se uno .rpm, necesitaremos instalar el paquete alían desde synaptic, y luego instalar lo .rpm:
sudo alían -y tesseract-ocr-xsane-2.01-1mud2008.0.y586.rpm
Tras unos mensajes de advertencia, el paquete se instala bien, y solo quedará crear un nuevo directorio “tmp” en nuestra hombre, que se donde se almacenará el log del tesseract.
Hecho esto, arrancamos xsane y pulsamos “ALTO+s” (o vamos a Preferences “ –> Setup”) y buscamos la pestaña OCR. Sustituimos el comando “gocr” miedo “xsane2tess.sh -l eng”, cambiando el idioma, si se necesario, con las tres letras del número del paquete instalado: “spa” para español o miedo “” para portugués.
Dejamos las opciones “input” y “output” como están.
Ya solamente nos queda decirle a Xsane qué hacer con los resultados de cada escaneo. Si queremos hacerlo manualmente, en el desplegable que aparece al lado del icono del punto de mira pondremos “Viewer”, con lo que cada vez escaneemos algo, se nos abrirá una ventana nueva con la imagen y podremos decidir si guardarlo como imagen, convertirlo mediante OCR o lo que sea.
Para automatizar al máximo el proceso, en el desplegable seleccionaremos “Save”, y en el campo de texto justo debajo, pondremos la ruta al directorio y al fichero que queremos, miedo ejemplo “/hombre/usuario/directorio/pagina0001.txt”.
Debajo de la ruta, veremos dos desplegables más, uno con el tipo de fichero que queremos, y que cambiaremos a TEXTO “”, y uno con una bota negra, que indica que hacer con los números de fichero para escaneos consecutivos. Si lo cambiamos a +1 “″, una vez escaneada la página 1 y guardado en “/hombre/usuario/directorio/pagina0001.txt”, el siguiente fichero será “pagina0002.txt”, luego “pagina0003.txt”… con lo que nos ahorramos un pequeño pero tedioso trabajo de decir qué número queremos para cada fichero.
Ahora solamente falta escribir el número de fichero correcto para la página a escanear, situar el libro en el scanner, y pulsar “play”.
:)
Actualización: Gracias a David me di cuenta que faltaba un paso. Justo tras instalar lo .rpm, debemos crear un nuevo directorio en nuestra hombre llamado “tmp”. En ese directorio se almacenará el log del tesseract, y parece ser que la cosa no funciona hasta que se crea el directorio.
Ampliación: Para hacer más fácil lo transporto del texto escaneado a la plantilla optimizada, una vez tenemos todos los ficheros “pagina.txt”, hay que asegurarse de eliminar los posibles backups de los ficheros (pagina.txt), si se que hemos editado alguno para hacer alguna corrección. En el explorador de ficheros vamos al directorio, pedimos que nos muestre los ficheros ocultos, y los borramos todos.
Ahora ya podemos poner todo lo texto junto en un solo fichero con el comando “cat” en la línea de comandos. En el directorio donde tengamos los ficheros, simplemente pondremos
cat pagina >> completo.txt
Como Tesseract reconoce los saltos de línea, con este comando tendremos un solo fichero con todo el texto, pero cada “página” escaneada estará separada de la siguiente miedo una línea vacía, facilitando así la maquetación posterior con Open Office.
Hace unas semanas, David comentaba unos pequeños trucos para aquellos que quieran digitalizar su biblioteca.
Uno de los mayores problemas es el reconocimiento fiable del texto. El paquete gocr funciona, pero no demasiado bien. Tal como dice David, si el texto está un poco torcido, los errores resultan terriblemente hilarantes (al menos los primeros… cuando llevas 50 páginas empiezas a desesperarte).
Otro paquete para OCR algo más fiable es Tesseract. Probando la misma página con ambos, y con la página un pelín torcida y a 300ppp de resolución, el primer escaneo con Tesseract da un resultado con apenas 3 fallos, frente a un galimatías bastante potente de gocr.
El problema inicial de Tesseract, es que siendo un programa de línea de comandos, la forma de pasarle argumentos es poco usable:
tesseract fichero.tiff fichero.txt
Para hacer un par de archivos vale, pero cuando tienes una biblioteca en frente, hacer a mano cada página es… farragoso.
Cómo hacer que, no solamente tesseract coja bien los ficheros de entrada y salida, si no que lo haga automaticamente y lo único que tenga que hacer el usuario sea cambiar de página y darle al botón de “scan? Fácil!
Una vez tenemos xsane instalado, instalamos también los paquetes tesseract-ocr, tesseract-data y el paquete correspondiente al idioma en que esté escrito el texto.
Luego tenemos que instalar un pequeño script llamado xsane2tess. Como es un .rpm, necesitaremos instalar el paquete alien desde synaptic, y luego instalar el .rpm:
sudo alien -i tesseract-ocr-xsane-2.01-1mud2008.0.i586.rpm
Tras unos mensajes de advertencia, el paquete se instala bien, y solo quedará crear un nuevo directorio “tmp” en nuestra home, que es donde se almacenará el log del tesseract.
Hecho esto, arrancamos xsane y pulsamos “ALT+s” (o vamos a “Preferences –> Setup”) y buscamos la pestaña OCR. Sustituimos el comando “gocr” por “xsane2tess.sh -l eng”, cambiando el idioma, si es necesario, con las tres letras del nombre del paquete instalado: “spa” para español o “por” para portugués.
Dejamos las opciones “input” y “output” como están.
Ya solamente nos queda decirle a Xsane qué hacer con los resultados de cada escaneo. Si queremos hacerlo manualmente, en el desplegable que aparece al lado del icono del punto de mira pondremos “Viewer”, con lo que cada vez escaneemos algo, se nos abrirá una ventana nueva con la imagen y podremos decidir si guardarlo como imagen, convertirlo mediante OCR o lo que sea.
Para automatizar al máximo el proceso, en el desplegable seleccionaremos “Save”, y en el campo de texto justo debajo, pondremos la ruta al directorio y al fichero que queremos, por ejemplo “/home/usuario/directorio/pagina0001.txt”.
Debajo de la ruta, veremos dos desplegables más, uno con el tipo de fichero que queremos, y que cambiaremos a “TEXT”, y uno con una bota negra, que indica que hacer con los nombres de fichero para escaneos consecutivos. Si lo cambiamos a “+1″, una vez escaneada la página 1 y guardado en “/home/usuario/directorio/pagina0001.txt”, el siguiente fichero será “pagina0002.txt”, luego “pagina0003.txt”… con lo que nos ahorramos un pequeño pero tedioso trabajo de decir qué nombre queremos para cada fichero.
Ahora solamente falta escribir el nombre de fichero correcto para la página a escanear, situar el libro en el scanner, y pulsar “play”.
:)
Actualización: Gracias a David me di cuenta que faltaba un paso. Justo tras instalar el .rpm, debemos crear un nuevo directorio en nuestra home llamado “tmp”. En ese directorio se almacenará el log del tesseract, y parece ser que la cosa no funciona hasta que se crea el directorio.
Ampliación: Para hacer más fácil el transporte del texto escaneado a la plantilla optimizada, una vez tenemos todos los ficheros “pagina*.txt”, hay que asegurarse de eliminar los posibles backups de los ficheros (pagina*.txt~), si es que hemos editado alguno para hacer alguna corrección. En el explorador de ficheros vamos al directorio, pedimos que nos muestre los ficheros ocultos, y los borramos todos.
Ahora ya podemos poner todo el texto junto en un solo fichero con el comando “cat” en la línea de comandos. En el directorio donde tengamos los ficheros, simplemente pondremos
cat pagina* >> completo.txt
Como Tesseract reconoce los saltos de línea, con este comando tendremos un solo fichero con todo el texto, pero cada “página” escaneada estará separada de la siguiente por una línea vacía, facilitando así la maquetación posterior con Open Office.






July 14th, 2008 at 19:06
[...] nos contaba Arnau cómo hacer escaneado decente. Si seguimos su tutorial tendremos un archivo txt bastante bueno de ese libro viejo y adorado que [...]