Skip to content

Latest commit

 

History

History
314 lines (222 loc) · 8.43 KB

File metadata and controls

314 lines (222 loc) · 8.43 KB



Sinapsis OCR

Plantillas para el reconocimiento óptico de caracteres (OCR) en imágenes o PDF

🐍 Instalación📦 Paquetes🚀 Características📚 Ejemplo de uso🌐 Aplicación Web📙 Documentación🔍 Licencia

**Sinapsis OCR** proporciona implementaciones potentes y flexibles para extraer texto de imágenes utilizando diferentes motores OCR. Permite a los usuarios configurar y ejecutar fácilmente tareas OCR con una configuración mínima.

🐍 Instalación

Este mono-repositorio consiste en diferentes paquetes para OCR:

  • sinapsis-doctr
  • sinapsis-easyocr

Instala el administrador de tu paquete de elección. Alentamos el uso de uv

Ejemplo con uv:

  uv pip install sinapsis-doctr --extra-index-url https://pypi.sinapsis.tech

o con solo pip:

  pip install sinapsis-doctr --extra-index-url https://pypi.sinapsis.tech

Cambia el nombre del paquete para el que deseas instalar.

Important

Las plantillas en cada paquete pueden requerir dependencias adicionales. Para el desarrollo, recomendamos instalar el paquete con todas las dependencias opcionales:

con uv:

  uv pip install sinapsis-doctr[all] --extra-index-url https://pypi.sinapsis.tech

o con solo pip:

  pip install sinapsis-doctr[all] --extra-index-url https://pypi.sinapsis.tech

Tip

También puedes instalar todos los paquetes dentro de este proyecto:

  uv pip install sinapsis-ocr[all] --extra-index-url https://pypi.sinapsis.tech

📦 Paquetes

Resumen de paquetes
  • Sinapsis DocTR

Utiliza la biblioteca DocTR para OCR de alta calidad con modernos modelos de aprendizaje profundo

Admite múltiples arquitecturas de detección y reconocimiento

Provee la extracción detallada de texto con cajas y puntajes de confianza

  • Sinapsis EasyOCR

Provee la biblioteca EasyOCR para OCR simple pero eficaz

Soporta varios idiomas

Extrae texto con cajas atados y puntajes de confianza

[!TIP] Usa el comando de CLI sinapsis info --all-template-names para mostrar una lista con todos los nombres disponibles de Plantillas instalados con Sinapsis OCR.

[!TIP] Usa el comando de CLI sinapsis info --example-template-config TEMPLATE_NAME para producir un ejemplo Agente config para la Plantilla especificado en **TEMPLATE_NAME **.

Por ejemplo, DocTROCRPrediction uso sinapsis info --example-template-config DocTROCRPrediction para producir un config de ejemplo.

📚 Ejemplo de uso

Ejemplo DocTR
agent:
  name: doctr_prediction
  description: agent to run inference with DocTR, performs on images read, recognition and save

templates:
- template_name: InputTemplate
  class_name: InputTemplate
  attributes: {}

- template_name: FolderImageDatasetCV2
  class_name: FolderImageDatasetCV2
  template_input: InputTemplate
  attributes:
    data_dir: dataset/input

- template_name: DocTROCRPrediction
  class_name: DocTROCRPrediction
  template_input: FolderImageDatasetCV2
  attributes:
    recognized_characters_as_labels: True

- template_name: BBoxDrawer
  class_name: BBoxDrawer
  template_input: DocTROCRPrediction
  attributes:
    draw_confidence: True
    draw_extra_labels: True

- template_name: ImageSaver
  class_name: ImageSaver
  template_input: BBoxDrawer
  attributes:
    save_dir: output
    root_dir: dataset
Ejemplo EasyOCR
agent:
  name: easyocr_inference
  description: agent to run inference with EasyOCR, performs on images read, recognition and save

templates:
- template_name: InputTemplate
  class_name: InputTemplate
  attributes: {}

- template_name: FolderImageDatasetCV2
  class_name: FolderImageDatasetCV2
  template_input: InputTemplate
  attributes:
    data_dir: dataset/input

- template_name: EasyOCR
  class_name: EasyOCR
  template_input: FolderImageDatasetCV2
  attributes: {}

- template_name: BBoxDrawer
  class_name: BBoxDrawer
  template_input: EasyOCR
  attributes:
    draw_confidence: True
    draw_extra_labels: True

- template_name: ImageSaver
  class_name: ImageSaver
  template_input: BBoxDrawer
  attributes:
    save_dir: output
    root_dir: dataset

Para correr, simplemente usa:

sinapsis run name_of_the_config.yml

🌐 Aplicación Web

La aplicación web proporciona una interfaz sencilla para extraer texto de imágenes usando OCR. Cargue su imagen, y la aplicación la procesará y mostrará el texto detectado con cajas delimitadoras.

Important

Para ejecutar la aplicación primero necesitas clonar este repositorio:

git clone https://github.com/Sinapsis-ai/sinapsis-ocr.git
cd sinapsis-ocr

Note

Si deseas habilitar el intercambio de aplicaciones externas en Gradio, export GRADIO_SHARE_APP=True

[!TIP] La configuración del agente se puede actualizar utilizando el AGENT_CONFIG_PATH environment var. Para usos predeterminados el config para fácil ocr, pero esto puede ser castigado con: AGENT_CONFIG_PATH=/app/packages/sinapsis_doctr/src/sinapsis_doctr/configs/doctr_demo.yaml

🐳 Docker

IMPORTANTE Esta imagen del docker depende de la sinapsis: imagen de fondo. Por favor consulta las instrucciones de sinapsis para construir con Docker.

  1. Construir la imagen sinapsis-ocr:
docker compose -f docker/compose.yaml build
  1. Iniciar el contenedor de aplicaciones:
docker compose -f docker/compose_app.yaml up
  1. Comprueba el estado:
docker logs -f sinapsis-ocr-app
  1. Los registros mostrarán la URL para acceder a la aplicación web, por ejemplo:

NOTA: La url puede ser diferente, comprueba la salida de los registros

Running on local URL:  http://127.0.0.1:7860
  1. Para detener la aplicación:
docker compose -f docker/compose_app.yaml down
💻 UV

Para ejecutar la aplicación web utilizando el administrador de paquetes uv , por favor:

  1. Crear el entorno virtual y sincronizar las dependencias:
uv sync --frozen
  1. Instalar paquetes:
uv pip install sinapsis-ocr[all] --extra-index-url https://pypi.sinapsis.tech
  1. Ejecuta la aplicación web:
uv run webapps/gradio_ocr.py
  1. El terminal mostrará la URL para acceder a la aplicación web, por ejemplo.:
Running on local URL:  http://127.0.0.1:7860

NOTA: La url puede ser diferente, comprueba la salida de la terminal

  1. Para detener la aplicación pulse Control + C en el terminal

📙 Documentación

La documentación para este y otros paquetes de sinapsis está disponible en la web de sinapsis

Los tutoriales para diferentes proyectos dentro de sinapsis están disponibles en la página de tutoriales de sinapsis

🔍 Licencia

Este proyecto está licenciado bajo la licencia AGPLv3, que fomenta la colaboración abierta y el intercambio. Para más detalles, consulta el LICENSE archivo.

Para uso comercial, consulta nuestra página Sitio web de Sinapsis para información sobre la obtención de una licencia comercial.