¡Cobertura de más de 90 idiomas! Guía práctica de ajuste de modelos Surya OCR: desde lo básico hasta la optimización

¡Cobertura de más de 90 idiomas! Guía práctica de ajuste de modelos Surya OCR: desde lo básico hasta la optimización

Enlace de descarga gratuita: surya OCR, análisis de diseño y detección de líneas en más de 90 idiomas Proyecto: https://gitcode.com/GitHub_Trending/su/surya

¿Sigues preocupándote por la baja precisión en el reconocimiento OCR para campos especializados? ¿Te frustra el deficiente rendimiento en el reconocimiento de texto multilingüe? En este artículo, te guiaremos paso a paso en las técnicas de ajuste de modelos Surya OCR para mejorar significativamente la precisión del reconocimiento de texto en escenarios específicos con simples operaciones. Al finalizar este artículo, podrás:

  • Comprender la arquitectura básica del modelo Surya OCR y los principios de ajuste fino
  • Preparar conjuntos de datos personalizados de alta calidad y realizar preprocesamiento
  • Utilizar los scripts de ajuste proporcionados oficialmente para el entrenamiento del modelo
  • Evaluar los resultados del ajuste e implementar las optimizaciones necesarias
  • Desplegar el modelo ajustado y aplicarlo en proyectos reales

Introducción a Surya OCR

Surya es un potente paquete de herramientas de OCR (Reconocimiento Óptico de Caracteres) que admite el reconocimiento de texto, el análisis de diseño y la detección de líneas en más de 90 idiomas. El proyecto proporciona modelos preentrenados y también permite a los usuarios ajustar los modelos según sus necesidades específicas para adaptarse a escenarios de aplicación particulares.

Algunos de los idiomas compatibles con Surya se muestran en la siguiente tabla:

Código de idioma Nombre del idioma Código de idioma Nombre del idioma
zh Chino en Inglés
ja Japonés ko Coreano
fr Francés de Alemán
es Español ru Ruso

La lista completa de idiomas se puede encontrar en el archivo de definición de idiomas del código fuente de Surya.

Las funciones principales de Surya OCR incluyen: detección de texto, análisis de diseño, reconocimiento de texto y reconocimiento de tablas. El módulo de reconocimiento de texto soporta más de 90 idiomas, cubriendo la mayoría de las necesidades en escenarios multilingües.

Preparación del entorno

Antes de comenzar el ajuste del modelo Surya OCR, es necesario preparar el entorno de desarrollo. Surya utiliza Poetry para la gestión de dependencias, por lo que primero se debe instalar Poetry.

# Clonar el repositorio del proyecto
git clone https://gitcode.com/GitHub_Trending/su/surya

# Entrar en el directorio del proyecto
cd surya

# Instalar dependencias
poetry install --with dev


El archivo de configuración de dependencias de Surya es pyproject.toml, que define las dependencias principales y de desarrollo del proyecto. Para el ajuste del modelo, necesitamos instalar la biblioteca datasets de las dependencias de desarrollo, utilizada para cargar y procesar los datos de enrtenamiento.

Preparación del conjunto de datos

Un conjunto de datos de alta calidad es clave para el éxito del ajuste del modelo. El ajuste del modelo Surya OCR admite conjuntos de datos en formato Hugging Face Datasets. El proyecto proporciona un conjunto de datos de ejemplo datalab-to/ocr_finetune_example que puedes usar como plantilla para preparar tu propio conjunto de datos.

Un conjunto de datos estándar para el ajuste de OCR debe incluir los siguientes campos:

  • image: Datos de imagen que contienen texto
  • text: Contenido de texto correspondiente en la imagen

Puedes reemplazar el conjunto de datos predeterminado con tu propio conjunto de datos, especificando simplemente el parámetro --dataset_name en el comando de ajuste.

Análisis del script de ajuste

Surya proporciona un script de ajuste específico surya/scripts/finetune_ocr.py, que se basa en la biblioteca Hugging Face Transformers y admite funciones como conjuntos de datos personalizados y ajuste de parámetros de entrenamiento.

Los componentes principales del script incluyen:

  1. SuryaOCRDataset: Clase de conjunto de datos, responsable de cargar y preprocesar los datos de imagen
  2. SuryaOCRDataCollator: Clase organizadora de datos, responsable de organizar las muestras en lotes
  3. cargar_modelo_y_procesador: Función de carga de modelo y procesador
  4. principal: Función principal, responsable de analizar parámetros, inicializar componentes e iniciar el entrenamiento

A continuación se muestra un fragmento del código central del script de ajuste:

def iniciar_proceso():
    analizador = HfArgumentParser((ArgumentosModeloSuryaOCR, ArgumentosDatosSuryaOCR, ArgumentosEntrenamientoSuryaOCR))
    args_modelo, args_datos, args_entrenamiento = analizador.parse_args_into_dataclasses()

    modelo, procesador = cargar_modelo_y_procesador(args_modelo.ruta_punto_control_preentrenado)
    conjunto_datos = ConjuntoDatosOCR(procesador, args_datos)
    organizador = OrganizadorDatosOCR(procesador, args_datos)

    entrenador = Entrenador(
        modelo=modelo,
        args=args_entrenamiento,
        train_dataset=conjunto_datos,
        data_collator=organizador
    )

    entrenador.entrenar()


Comenzando el ajuste

Utiliza el siguiente comando para iniciar el ajuste del modelo Surya OCR:

poetry run python surya/scripts/ajuste_ocr.py \
    --ruta_punto_control_preentrenado <ruta_del_modelo_preentrenado> \
    --nombre_conjunto_datos <nombre_del_conjunto_datos> \
    --directorio_salida ./modelo_ajustado \
    --epocas_entrenamiento 10 \
    --tamanio_lote 8 \
    --tasa_aprendizaje 2e-5 \
    --pasos_registro 100 \
    --pasos_guardado 500


Puedes ajustar los parámetros de entrenamiento según tus necesidades, como la tasa de aprendizaje, el tamaño del lote, el número de épocas, etc.

Optimización del postprocesamiento

La salida del modelo ajustado puede requerir un postprocesamiento para mejorar la calidad del reconocimiento. Surya proporciona varias funciones de postprocesamiento definidas en el archivo surya/reconocimiento/postprocesamiento.py, incluyendo:

  1. recortar_repeticiones: Recorta texto repetido
  2. limpiar_matematicas: Limpia el formato de fórmulas matemáticas
  3. corregir_etiquetas_desbalanceadas: Corrige etiquetas desbalanceadas

Estas funciones de postprocesamiento pueden mejorar significativamente la calidad del reconocimiento OCR en escenarios específicos, especialmente para texto que contiene fórmulas matemáticas y formatos especiales.

Evaluación de rendimiento

Una vez completado el ajuste, puedes utilizar las herramientas de prueba de基准 proporcionadas en el proyecto para evaluar el rendimiento del modelo. El código de prueba de基准 se encuentra en benchmark/reconocimiento.py y admite varios indicadores de evaluación, como precisión, tasa de error de caracteres, etc.

La imagen anterior muestra la comparación de precisión de reconocimianto entre Surya y otras herramientas OCR en diferentes idiomas, sirviendo como referencia para evaluar el efecto del ajuste.

Ejemplos de aplicación práctica

El modelo Surya OCR ajustado se puede aplicar en diversos escenarios, como:

  1. Digitalización de documentos: Convertir documentos en papel a texto electrónico editable
  2. Extracción de contenido multilingüe: Extraer texto de más de 90 idiomas de imágenes
  3. Reconocimiento de tablas: Identificar la estructura de tablas en imágenes y convertirla a datos estructurados

La imagen anterior muestra el efecto de reconocimiento de tablas de Surya, donde se puede observar que el modelo puede identificar con precisión la estructura y el contenido de las tablas.

Resumen y perspectivas

A través de esta guía, ya has dominado el método de ajuste del modelo Surya OCR. Resumamos los pasos clave:

  1. Preparar el entorno de desarrollo y el conjunto de datos
  2. Utilizar el script ajuste_ocr.py para el ajuste del modelo
  3. Aplicar optimización de postprocesamiento para mejorar los resultados del reconocimiento
  4. Evaluar el rendimiento del modelo y realizar ajustes necesarios

En el futuro, el equipo de Surya continuará optimizando la arquitectura del modelo, agregando soporte para más idiomas y proporcionando más opciones de ajuste. Esperamos ver que los usuarios de la comunidad apliquen Surya en escenarios más interesantes a través de la función de ajuste.

Si encuentras problemas durante el uso o tienes alguna sugerencia, no dudes en comunicarte con nosotros a través del repositorio GitHub del proyecto.

Sugerencia: Para obtener los mejores resultados de ajuste, se recomienda utilizar un conjunto de datos con al menos 1000 imágenes y asegurarse de que el contenido del texto esté altamente relacionado con el escenario de aplicación objetivo.

Enlace de descarga gratuita: surya OCR, análisis de diseño y detección de líneas en más de 90 idiomas Proyecto: https://gitcode.com/GitHub_Trending/su/surya

Etiquetas: OCR Surya machine learning Model Fine-tuning Computer Vision

Publicado el 7-12 07:41