Python como utilizarlo para hacer análisis OCR

En este post les quiero platicar acerca de un concepto conocido como OCR sus siglas son Optical Character Recognition o al español Reconocimiento óptico de caracteres. La primera vez que vi este termino fue hace unos 23 años cuando tuvimos en casa un scanner, él cual tenía la opción para tratar de obtener el texto de las imágenes escaneadas el resultado obtenido al utilizar esta función era un 50% de lectura de datos a un archivo de texto, la verdad no recuerdo que marca era, pero era como la siguiente imagen  

Bueno la ventaja de tener esto es que no es necesario realizar la digitación del texto, y no solo la edición o en la actualidad trabajar con los datos en formato XML o almacenar datos en una base de datos. Es decir reconocimiento de caracteres.

Existen empresas enfocadas a recopilar información de documentos en papel, obtener los datos y almacenarlos 
  • Por ejemplo SAFEDATA











Este tipo de software que utiliza se llaman EDM que quiere decir Electronic Document Management o en Español Sistema de Gestión Documental pueden leer un poco más de estos sistemas en https://es.wikipedia.org/wiki/Software_de_gesti%C3%B3n_documental. 

Programa en Python para utilizar OCR

Como tratamos en este blog  quiero que veamos un ejemplo de como poder hacer algún programa que nos permita utilizar el tema del post y en esta ocasión vamos hacer un programa con Python y la librería tesseract https://github.com/tesseract-ocr.

Instalar Librería  tesseract en Windows

Lo primero que tenemos que hacer es instalar la librería en Python para mi caso en Windows 

Agregar leyenda
Solo como comentario esta librería normalmente se utiliza en Linux o Mac, por lo que en esta ocasión no utilizaremos el comando PIP si no un instalador que hay que descargar de https://github.com/UB-Mannheim/tesseract/wiki

Empezando con la instalación es un instalador donde nos pregunta que componentes


Después de instalarlo lo que vamos hacer es probarlo

Tengo una imagen para probar de la liga de Tesseract

Luego desde un CMD vamos a probar el comando que lea la imagen y envie la información a un archivo tesseract example_03.png out


Hice una prueba con un archivo más complejo en cuanto a tamaño de letra, cantidad de texto, la calidad de la imagen borrosa

Aun así la librería obtiene la información bastante bien. Como pueden ver en la imagen de arriba.


Una ventaja de esta librería es que también hace la traducción a otro idioma.

Instalar paquete pytesseract en python

Ahora vamos instalar la librería pytesseract en Python



Desde una consola de Windows ponemos el comando  python -m pip install pytesseract


El programa en Python 3.7


try:
    from PIL import Image
except ImportError:
    import Image
import pytesseract

# If you don't have tesseract executable in your PATH, include the following: esta linea es para poder el path donde esta instalado Tesseract y deben poner el comando
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract'
print(pytesseract.image_to_string(Image.open('example_03.png')))


La ejecución del programa


De la imagen con los números

De la imagen con el texto


Alternativas de uso de OCR

La verdad es que con esta librería pueden hacer muchos proyectos interesantes a mi se me ocurre:

  • Leer los datos de una factura y poder crear un XML o CSV para integrar a un ERP, por ejemplo tome una factura en imagen png y me llevo los datos.
  • Probar como funciona el programa para leer datos por ejemplo de tarjetas de crédito o de acceso, yo intente con una tarjeta de circulación y no me regreso texto, pero con la función image_to_boxes si me indico que encontró texto.
  • Si una persona con problemas visuales, creo que con esta herramienta se puede desarrollar un buen proyecto, quizá utilizando Arduino, una cámara de celular.
  • En caso de ser estudiantes y quieren realizar notas o apuntes más rápido de algún texto.
  • En mi caso por ejemplo utilizo esta librería para apoyarme en escribir en otro blog https://www.lecturasbibliacatolica.com/
A ustedes ¿que ideas se les ocurre? intenten hacerlo cualquier proyecto primero empieza con una idea o un objetivo.

No olvides compartirnos y seguirnos en este blog o en Facebook.

Comentarios

Entradas más populares de este blog

Ejemplo Macro en Word

Macro de Excel para abrir archivo csv

Como ejecutar SQL desde Tareas Programadas de Windows