Ir al contenido principal

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

Graficar funciones en Python con dataframes

Bienvenidos a un nuevo post, en esta semana, en esta ocasión les quiero platicar acerca de una librería en Python que se llama  matplotlib  que nos sirve para gráfica funciones de  matemáticas. Habitualmente en Python existen muchas librerías, lo que hay que hacer es primero investigar si ya existe alguna que nos ayude y entenderla antes de inventar el hilo negro, en mi caso encontré la librería  Matplotlib Para instalar deben utilizar el comando PIP en 2.7 Instalando en Python 3.7 Si tienen Python 2.7 deben realizar la ejecución de estos 2 comandos desde consola python -m pip install -U pip python -m pip install -U matplotlib Aunque lo más recomendable es utilizar la versión 3.7 o superior de Python. Programa para graficar en Python import matplotlib.pyplot as plt import numpy as np import math as mt def move_spines():     """Esta funcion divide pone al eje y en el valor      0 de x para dividir claramente los valores positivos y     negativos.&quo

Ejemplo Macro en Word

Hola: ¿Sabían que no solo en Excel pueden hacer Macros?  ¡¡¡También en Outlook, Word, Power Point,Access  es posible hacer Macros!!!  ☺️ Ya que Word, Excel, Power Point,Access son de familia Microsoft y Visual Basic también es que podemos programar nuestras macros en esta paquetería. Como hemos visto antes, para poder programar nuestras macros, necesitamos primero configurar la Barra de tareas de Developer o Desarrollador Seleccionan el Menu File>Options>Customize Ribbon o en Español Archivo>Opciones>barra de tareas Despues la parte de seguridad de las macros Menu File>Options>Trus Center o Archivo>Opciones>Centro de Seguridad y marcamos como se ve en la imagen, la cuarta opción y el combo Ejemplo Vamos hacer un ejemplo donde, tengamos que generar varios diplomas de fin de curso, pero con una lista de Nombres , entonces vamos a crear un nuevo archivo en Word y le vamos a guardar como tipo Macro  Tenemos una plantill

Ejemplo Python para leer imagen y transformarla en una matriz

Como hemos visto en otros post, Python nos permite hacer programas de manera más rápida, en esta ocasión quiero compartirles un ejemplo para leer un archivo de imagen y como convertirlo en una matriz o un arreglo. Aplicaciones Poder hacer ingeniería de datos, es decir poder convertir una misma imagen en diferentes todos y utilizarlos para machine learning para reconocimiento de gatos, para ello hay que mostrar muchas imágenes a nuestro modelo es decir entrenarlo, para ello hay que colocarle imágenes claras y imagenes que no sean tan claras por ejemplo, se pone la imagen original y se agrega "ruido" para que se vea en rojos, grises, verdes. Se pudo utilizar para un mapa , para poder ver datos a detalle Se puede aplicar para manipular imágenes, por ejemplo agregar efectos  Seguramente a ustedes se les pueden ocurrir más aplicaciones Les comparto el ejemplo de como hacerlo en Jupiter y para hacer el ejemplo voy a utilizar el logo del blog es una imagen de 500x500 pixeles Los Pas