EasyOCR: Una biblioteca OCR rápida y multilingüe para Python

EasyOCR: Una biblioteca OCR rápida y multilingüe para Python

¿Por qué EasyOCR?

El reconocimiento óptico de caracteres (OCR) impulsa todo, desde la digitalización de PDFs hasta los motores de búsqueda web. Mientras existen muchos servicios API comerciales, EasyOCR ofrece una alternativa llave en mano y gratuita que soporta más de 80 idiomas y escritura popular como latino, chino, árabe, devanagari, cirílico y más.

Ventajas clave de un vistazo: - Costo cero – Cód. abierto puro, sin necesidad de clave API. - Inferencia rápida – Construido sobre PyTorch, las descargas de modelos son ligeras (≈30 MB). La inferencia acelerada por GPU es opcional. - API amigable a Python – Piensa en easyocr.Reader(); devuelve una lista de cuadros delimitadores, texto y confianza. - Extensible – Cambia los back‑ends de detección o reconocimiento; integra nuevos modelos con cambios mínimos. - Listo para Hugging Face Spaces – Un demo Gradio ya está publicado, lo que facilita exponer tu canalización OCR.

Instala rápido y ejecuta

# Lanzamiento estable
epip install easyocr

Si quieres la última versión o deseas contribuir, instala desde el código fuente:

pip install git+https://github.com/JaidedAI/EasyOCR.git

Tip: En Windows, instala primero PyTorch con la versión CUDA adecuada:

pip install torch torchvision

import easyocr
# Crea un lector, cargando modelos para chino simplificado y inglés
reader = easyocr.Reader(['ch_sim', 'en'])
# Ejecuta OCR sobre una ruta de imagen o bytes de archivo
results = reader.readtext('chinese.jpg')
print(results)

Salida: una lista de tuplas que contienen cuadros delimitadores de 4 puntos, texto detectado y un valor de confianza.

Simplifica la salida

Si solo te importa las cadenas de texto:

texts = reader.readtext('chinese.jpg', detail=0)
print(texts)
# ['愚园路', '西', '东', '315', '309', 'Yuyuan Rd.', 'W', 'E']

También puedes alimentar una imagen OpenCV (numpy.ndarray) o bytes de imagen cruda. Para inferencia solo CPU, pasa gpu=False al crear el lector.

Despliegue con Docker

Se incluye un Dockerfile preconstruido. Construye localmente o descarga desde Docker Hub (si está disponible):

docker build -t easyocr .
docker run -p 7860:7860 easyocr

El contenedor ejecuta una interfaz Gradio que replica el demo web.

Demo de Hugging Face Spaces

La librería entrega un Hugging Face Space listo para usar: https://huggingface.co/spaces/JaidedAI/EasyOCR.

  • Navega al demo → sube una imagen; observa predicciones en tiempo real.
  • Clona el repo; ejecuta localmente con python app.py.
  • Modifica el espacio para tus propios casos de uso — cambia el modelo de detección, añade un conjunto de idiomas personalizados, etc.

Entrena tus propios modelos (Opcional)

EasyOCR es modular:

  • Detección – CRAFT o DB.
  • Reconocimiento – CRNN (ResNet + LSTM + CTC) o definido por el usuario.

El repositorio incluye scripts de entrenamiento en la carpeta trainer. Para afinación sobre un conjunto de datos personalizado, provee imágenes etiquetadas, genera anotaciones con easyocr/utils/ocr_annotation.py y ejecuta:

python -m trainer.trainer --config_path configs/train.yaml

Para quienes solo quieran ajustar hiperparámetros, la guía easyocr/custom_model.md explica el proceso.

Roadmap futuro

  • Soporte para escritura a mano – Pronto añadiremos un modelo dedicado OCR de manuscrito.
  • Plug‑in modular – Sustituye detectores de última generación (DB, EAST) o modelos de reconocimiento (Transformer) con una simple actualización de API.
  • Inferencia optimizada – Cuantización y exportación de ONNX.

Mejores prácticas

  1. Prioridad de idioma – Pasar la lista exacta de idiomas acelera la descarga del modelo.
  2. Procesamiento por lotes – Para grandes conjuntos de imágenes, procesa en lotes para minimizar el consumo de memoria GPU.
  3. Post‑procesamiento – Usa la salida detail=0 para listas de cadenas rápidas, o mantén cuadros para aplicaciones sensibles al diseño.
  4. Uso de GPU – Mantén activo un solo GPU; la librería gestiona inferencias por lotes internamente.
  5. Contribuciones open source – Se aceptan peticiones de funcionalidades o correcciones; el repositorio incluso soporta agregar nuevos idiomas.

Conclusión

EasyOCR combina velocidad, precisión y capacidad multilingüe en un solo paquete Python. Ya sea que estés prototipando un script pequeño o construyendo una base de OCR de producción, EasyOCR ahorra tiempo y mantiene los costos en cero. Obtén la librería hoy, explora el demo de Hugging Face y comienza a extraer texto de imágenes de inmediato.

Artículo original: Ver original

Compartir este artículo