Saltar al pie de página
HERRAMIENTAS OCR

Cómo construir un OCR en Python

El mundo está inundado de grandes cantidades de información textual. Hay una riqueza de contenido valioso que podría ser inmensamente útil si fuera un poco más accesible.

Aquí es donde la tecnología de Reconocimiento Óptico de Caracteres (OCR) entra en juego. Imagina una computadora capaz de 'leer' texto de imágenes, tal como lo hace un humano, solo que esto es visión por computadora, que representa una sección de la informática donde podemos entrenar computadoras para reconocer e identificar diferentes sujetos en una imagen.

En este tutorial, te guiaremos a través del proceso de construir tu propio sistema OCR usando Python, un lenguaje de programación conocido por su simplicidad y versatilidad. Con la ayuda de bibliotecas como Tesseract, IronOCR, y OpenCV, pronto podrás desbloquear el potencial de extraer, manipular y trabajar con texto de imágenes de documentos.

Requisitos previos del motor OCR (reconocimiento óptico de caracteres)

Antes de adentrarnos en los detalles de construir nuestro sistema OCR, hay algunas cosas que necesitarás:

  1. Python: Asegúrate de tener Python instalado en tu computadora. Puedes descargarlo desde el sitio web oficial de Python.
  2. Instalar Tesseract OCR: Tesseract OCR es un motor de OCR de código abierto desarrollado por Google. Es una herramienta potente que utilizaremos en nuestro proyecto. Puedes descargar la biblioteca Tesseract desde GitHub y leer sobre el proceso de instalación de Tesseract OCR.
  3. Bibliotecas de Python: Usaremos dos bibliotecas importantes de Python para este proyecto: pytesseract y la biblioteca opencv-python. Puedes instalarlas usando el siguiente comando en tu línea de comandos o terminal:

    pip install pytesseract opencv-python
    pip install pytesseract opencv-python
    SHELL

Cómo Construir un OCR en Python: Figura 1

Pasos para construir el sistema OCR

Puedes construir fácilmente OCR usando código Python con la ayuda de Bibliotecas OCR de Python y un simple script de Python.

Paso 1: Importar bibliotecas

Lo primero es lo primero, necesitarás importar las bibliotecas necesarias:

import cv2  # OpenCV library for computer vision
import pytesseract  # Tesseract library for OCR
import cv2  # OpenCV library for computer vision
import pytesseract  # Tesseract library for OCR
PYTHON

Paso 2: Leer y procesar una imagen

Carga la imagen usando OpenCV y prepárala para mejorar la precisión del OCR:

# Load the image using OpenCV
image = cv2.imread('sample_image.png') 

# Convert the image to grayscale
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 

# Apply thresholding or other preprocessing techniques if needed
# This step helps in enhancing the quality for better OCR results
# Load the image using OpenCV
image = cv2.imread('sample_image.png') 

# Convert the image to grayscale
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 

# Apply thresholding or other preprocessing techniques if needed
# This step helps in enhancing the quality for better OCR results
PYTHON

Paso 3: Utilice Tesseract para OCR

Ahora es momento de usar el motor Tesseract OCR para realizar OCR en la imagen procesada:

# Set the path to the Tesseract executable
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe'

# Use pytesseract to perform OCR on the grayscale image
text = pytesseract.image_to_string(gray_image)
# Set the path to the Tesseract executable
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe'

# Use pytesseract to perform OCR on the grayscale image
text = pytesseract.image_to_string(gray_image)
PYTHON

Paso 4: Mostrar resultados

Si deseas visualizar la imagen original y el texto extraído, puedes usar OpenCV para mostrarlos:

# Display the original image using OpenCV
cv2.imshow('Original Image', image) 
cv2.waitKey(0) 

# Print the extracted text to the console
print("Extracted Text:", text) 

cv2.destroyAllWindows()  # Close the OpenCV window
# Display the original image using OpenCV
cv2.imshow('Original Image', image) 
cv2.waitKey(0) 

# Print the extracted text to the console
print("Extracted Text:", text) 

cv2.destroyAllWindows()  # Close the OpenCV window
PYTHON

Imagen original

Cómo Construir un OCR en Python: Figura 2

Texto extraído

Cómo Construir un OCR en Python: Figura 3

Como puedes ver, el resultado puede variar dependiendo de la calidad y complejidad de la imagen, y en ciertos casos, podría ser necesario un entrenamiento adicional (similar al entrenamiento de aprendizaje automático) para imágenes con estructuras complejas, como las que contienen tablas.

IronOCR

En un mundo inundado de datos, la capacidad de convertir sin esfuerzo texto impreso en contenido legible por máquina es una capacidad transformadora.

Presentamos IronOCR, una tecnología de vanguardia que permite a los desarrolladores integrar capacidades robustas de Reconocimiento Óptico de Caracteres (OCR) en sus aplicaciones con facilidad.

Ya sea que estés extrayendo datos de documentos escaneados, automatizando la entrada de datos o mejorando la accesibilidad, IronOCR ofrece una solución integral que trasciende los límites del reconocimiento de texto tradicional.

En esta exploración, nos adentramos en el mundo de IronOCR, descubriendo sus características versátiles y destacando su potencial para cerrar la brecha entre los mundos físico y digital.

Instalación de IronOCR

Puedes instalar fácilmente IronOCR usando la Consola del Administrador de Paquetes NuGet, simplemente ejecutando el siguiente comando.

Install-Package IronOcr

IronOCR también está disponible para descargar en el sitio web oficial de NuGet.

Cómo extraer texto de una imagen con IronOCR

En esta sección, veremos cómo puedes extraer fácilmente texto de imágenes usando IronOCR. A continuación, se muestra el código fuente que extrae texto de la imagen.

using IronOcr;
using System;

var ocr = new IronTesseract();

using (var input = new OcrInput())
{
    input.AddImage("r3.png");
    OcrResult result = ocr.Read(input);
    string text = result.Text;
    Console.WriteLine(result.Text);
}
using IronOcr;
using System;

var ocr = new IronTesseract();

using (var input = new OcrInput())
{
    input.AddImage("r3.png");
    OcrResult result = ocr.Read(input);
    string text = result.Text;
    Console.WriteLine(result.Text);
}
Imports IronOcr
Imports System

Private ocr = New IronTesseract()

Using input = New OcrInput()
	input.AddImage("r3.png")
	Dim result As OcrResult = ocr.Read(input)
	Dim text As String = result.Text
	Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

Resultado

Cómo Construir un OCR en Python: Figura 4

Conclusión

En este tutorial, hemos explorado el proceso de construir un sistema de Reconocimiento Óptico de Caracteres (OCR) en Python, revelando la capacidad de extraer texto de imágenes con notable facilidad.

Al aprovechar bibliotecas como Tesseract y OpenCV, hemos navegado a través de pasos esenciales, desde la carga y el pre-procesamiento de imágenes hasta la utilización del motor Tesseract OCR para la extracción de texto.

También hemos mencionado posibles desafíos como las limitaciones de precisión, que soluciones avanzadas como IronOCR buscan abordar.

Ya sea que elijas la ruta DIY o adoptes herramientas sofisticadas, el mundo del OCR llama con la promesa de transformar imágenes en texto procesable, agilizar la entrada de datos y amplificar la accesibilidad. Con este conocimiento recién adquirido, estás listo para embarcarte en un viaje que fusiona los reinos visual y digital de manera fluida.

Para comenzar con IronOCR visita el siguiente enlace. Para ver el tutorial completo sobre cómo extraer texto de imágenes visita aquí.

Si deseas probar IronOCR gratis hoy, asegúrate de inscribirte en la prueba ofrecida por IronOCR para explorar todos sus usos y potencial en un entorno comercial sin la marca de agua. Para continuar usándolo una vez que pasen los 15 días, simplemente compra una licencia.

Kannaopat Udonpant
Ingeniero de Software
Antes de convertirse en Ingeniero de Software, Kannapat completó un doctorado en Recursos Ambientales de la Universidad de Hokkaido en Japón. Mientras perseguía su grado, Kannapat también se convirtió en miembro del Laboratorio de Robótica de Vehículos, que es parte del Departamento de Ingeniería ...
Leer más