Como instalar ? Tesseract – ORC ? y Pytesseract en Windows

Por Administrador

¿Quieres emplear Reconocimiento Óptico de Caracteres (OCR) en tus programas de python?, pues podrías usar Tesseract-OCR, un motor de reconocimiento óptico de caracteres de código abierto, y que además está financiado por Google. Por ello hoy veremos como instalarlo para que puedas desarrollar tus aplicaciones.

Para que puedas usar esta herramienta es necesario instalar Tesseract-OCR, posteriormente instalaremos Pytesseract. Si instalamos únicamente el último, no nos permitirá realizar ningún reconocimiento.

Luego de las instalaciones, probaremos esta herramienta con un pequeño programa, pero ten en cuenta que para leer la imagen usaremos OpenCV, sin embargo podrías usar otras librerías tales como PIL. Además veremos como solucionar el error: tesseract is not installed or it’s not in your path.

CONTENIDO

  • Instalar Tesseract – OCR en Windows
  • Instalar de Pytesseract
  • Reconocimiento de texto con TESSERACT-OCR en Python (Probando la instalación)
    • ¿Cómo soluacionar el error: tesseract is not installed or it’s not in your path?
    • Pruebas de funcionamiento
    • Pero… ¿y si probamos el reconocimiento de texto en español?

Instalar Tesseract – OCR en Windows

Para iniciar con la instalación de tesseract nos dirigimos a su repositorio en gitHub y buscaremos el apartado para Windows. Entonces nos indica que el instalador para Windows en sus distintas versiones está en el link Tesseract at UB Mannheim, entonces nos dirigimos a esta página. 

Figura 1: Página donde se encuentra el instalador de Tesseract para Windows (Fuente).

Podemos descargar los últimos instaladores de tesseract para windows de 32 y 64 bits. En mi caso voy a elegir el ejecutable de 64 bits y damos clic para descargar. 

Como te pudiste haber dado cuenta, la versión que se descargará es la 5.0.0-alpha. Según esta documentación se recomienda esta versión para usuarios de Windows gracias a su funcionalidad, rapidez y estabilidad, a diferencia de versiones anteriores. Pero si por alguna razón necesitas alguna versión anterior, dirígete al link de older versions. 

Una vez descargado, ejecutamos el instalador. Escogemos un idioma para realizar el proceso, aquí por ejemplo me aparece el español. Damos clic en OK.

Figura 2: Se selecciona el idioma para realizar el proceso de instalación.

En la bienvenida al asistente de instalación damos clic en siguiente.

Figura 3: Asistente de Instalación.

En la siguiente ventana nos aparecerá el Acuerdo de licencia y aceptamos las condiciones. Al momento de elegir usuario puedes elegir en ‘instalación para cualquier usuario’ o ‘solo para mí’, y damos clic en Siguiente.

Figura 4: Elección de usuarios

En la sección de Selección de componentes vamos a ver que por defecto se instalan los datos del idioma inglés. Si deseamos otros idiomas vamos a expandir Aditional language data, en donde podremos elegir aquellos que deseemos instalar.

Figura 5: Selección de componentes.

A la izquierda vas a poder ver la cantidad de espacio requerido según el número de idiomas o componentes que elijas. Por ahora de toda esta lista, voy a elegir Math /equation detection module y español. Pero tú puedes escoger de entre todos los idiomas de la lista (Incluso hay Quechua 😀 ). Damos clic en siguiente, siguiente e instalar.

Una vez finalizada la instalación vamos a dar clic en Terminar.

Figura 6: Instalación completa.

Instalar de Pytesseract

Para que podamos emplear Reconocimiento Óptico de Caracteres a través de tesseract desde python necesitamos instalar pytesseract. En esta página tenemos la información sobre esta herramienta. 

Figura 7: Pytesseract package, para instalar vía pip.

Copiamos pip install pytesseract y pegamos en el cmd.

Figura 8: Instalación de pytesseract.

Hasta aquí ya tenemos las instalaciones realizadas. ¡Estamos listos para programar y hacer una pequeña prueba!.

Reconocimiento de texto con TESSERACT-OCR en Python (Probando la instalación)

Para corroborar que todo esté funcionando bien vamos a realizar un programa empleado el reconocimiento óptico de caracteres, para ello usaremos las siguientes imágenes como pruebas:

Figura 9: Imagen de prueba 1.

Figura 10: Imagen de prueba 2.

El programa que emplearemos es el siguiente:

import cv2
import pytesseract

pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract'

image = cv2.imread('imgColores.jpg')

text = pytesseract.image_to_string(image,lang='spa')
print('Texto: ',text)
      
cv2.imshow('Image',image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Línea 1 y 2: Importamos OpenCV y pytesseract.


¿Cómo soluacionar el error: tesseract is not installed or it’s not in your path?

Línea 4: Al correr el programa sin esta línea puede que te encuentres con el siguiente error:

Figura 11: Error al aplicar OCR con tesseract en una imagen

Este error se da debido a que no se ha encontrando el ejecutable tesseract. Para solucionar este problema vamos a la página que habíamos visto recientemente en el apartado Usage, para ver si obtenemos alguna solución.

Figura 12: Solución al error ‘tesseract is not installed or it’s not in your path’.

Vamos a copiar y pegar en el script de nuestro programa (en la línea 4 ya lo he realizado ) pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>', en donde dice full_path_to_your_tesseract_executable, reemplazaremos con el path donde está el ejecutable tesseract. Para saber cual es este path, vamos donde se instaló tesseract. En mi computador lo tenemos en disco C, archivos de programa, Tesseract-OCR, entonces copiamos dicha dirección y pegamos. No olvides añadir al final el nombre del ejecutable, es decir tesseract.


Línea 6: Leemos la imagen de la cual vamos a reconocer el texto.

NOTA: No es necesario usar OpenCV para leer la imagen, también podrías hacerlo a través de otras librerías como PIL por ejemplo.

Línea 8: Para poder emplear el reconocimiento óptico de caracteres usamos pytesseract.image_to_string y entre paréntesis la variable en donde está asignada la imagen.

Línea 9: Se va a imprimir el texto extraído de la imagen.

Línea 11 a 13: Vamos a visualizar la imagen, esperar a que una tecla sea presionada para que acabe el proceso y se cierren las ventanas.

Pruebas de funcionamiento

Figura 13: Prueba 1 de extracción de texto a una imagen. (Izq: Imagen de entrada. Der: Texto reconocido)

En la figura 13 se puede visualizar a la imagen con la que estamos trabajando. En la consola tenemos el texto reconocido, cuyo resultado es muy bueno, sin embargo no se reconoció la tilde en ‘Suscríbete’, esto debido a que por defecto usa el idioma inglés para el reconocimiento. Vamos a probar con otra imagen.

Figura 14: Prueba 2 de extracción de texto a una imagen. (Izq: Imagen de entrada. Der: Texto reconocido)

La segunda imagen que vamos a usar es la correspondiente a la figura 10, esta es muy parecida a la anterior, con la diferencia que tenemos letras blancas en un fondo a color. Como podemos ver en la figura 14, en el resultado del texto obtenido, no tuvimos buenos resultados, esto debido a que por defecto usa el idioma inglés.

Pero… ¿y si probamos el reconocimiento de texto en español?

¿Qué te parece si con esta última imagen probamos el reconocimiento óptico de caracteres en español (que habíamos instalado en un principio)?. Bien, para ello añadimos ‘lang = ‘spa’’ en la línea 8 de nuestro progama, que corresponderá a español.

text = pytesseract.image_to_string(image,lang='spa')

Figura 15: Prueba 3 de extracción de texto a una imagen. (Izq: Imagen de entrada. Der: Texto reconocido)

Y ahora si que obtuvimos buenos resultados, e incluso tenemos la tilde en la ‘i’ de ‘Suscríbete’. Esto lo puedes ver en la figura 15.

Existen más opciones para que mejores el reconocimiento de caracteres a través de Tesseract-OCR, para ello puedes consultar a su manual de usuario. 

Y hemos llegado al final de este post, espero que sea de ayuda y que puedas realizar muchísimas aplicaciones con esta herramienta.