¡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 textotext: 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:
- SuryaOCRDataset: Clase de conjunto de datos, responsable de cargar y preprocesar los datos de imagen
- SuryaOCRDataCollator: Clase organizadora de datos, responsable de organizar las muestras en lotes
- cargar_modelo_y_procesador: Función de carga de modelo y procesador
- 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:
- recortar_repeticiones: Recorta texto repetido
- limpiar_matematicas: Limpia el formato de fórmulas matemáticas
- 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:
- Digitalización de documentos: Convertir documentos en papel a texto electrónico editable
- Extracción de contenido multilingüe: Extraer texto de más de 90 idiomas de imágenes
- 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:
- Preparar el entorno de desarrollo y el conjunto de datos
- Utilizar el script
ajuste_ocr.pypara el ajuste del modelo - Aplicar optimización de postprocesamiento para mejorar los resultados del reconocimiento
- 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