IRONSOFTWAREHOME

Cómo Entrenar una Fuente Personalizada con Tesseract 5 en C#

Kannaopat Udonpant
Kannapat Udonpant
Updated: 4 de junio de 2026

El modelo inglés predeterminado de Tesseract interpreta incorrectamente muchos inputs del mundo real: formularios de admisión manuscritos de hospitales, digitalizaciones de libros antiguos, una tipografía decorativa personalizada de un estudio de juegos, o símbolos específicos de la industria que un motor OCR genérico nunca ha visto. La solución es entrenar Tesseract en la fuente exacta usted mismo, produciendo un único .traineddata artefacto que puede enviar a donde IronOCR se ejecute.

Esta guía recorre el proceso de entrenamiento de fuentes personalizadas de Tesseract 5 de principio a fin en C#: instalar la cadena de herramientas WSL2 Ubuntu, renderizar archivos de entrenamiento .box y .tif desde su .ttf o .otf, construir el modelo .traineddata con tesstrain contra un eng.traineddata base, luego cargar el resultado en IronOCR. Una vez entrenado, el archivo es portátil entre Windows, macOS, Linux y Docker.

Inicio rápido: Use su archivo de fuente entrenada en C#

Configure IronOCR apuntando UseCustomTesseractLanguageFile a su archivo entrenado .traineddata, luego llame Read en cualquier imagen como lo haría con un paquete de idioma estándar.

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2Copie y ejecute este fragmento de código.

    using IronOcr;
    
    var ocr = new IronTesseract();
    ocr.UseCustomTesseractLanguageFile("path/to/YourCustomFont.traineddata");
    string text = ocr.Read(new OcrInput("image-with-special-font.png")).Text;
    C#
  3. 3Despliegue para probar en su entorno real

    Comienza a usar IronOCR en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer

¿Cómo Configuro el Entorno de Entrenamiento?

¿Cómo Instalo IronOCR?

Instale IronOCR a través de NuGet:

PM > Install-Package IronOcr

El paquete DLL es una alternativa manual si no puede usar NuGet. Para el motor subyacente, consulte la guía de características de Tesseract 5 y la referencia de idiomas personalizados.

¿Cómo Instalo y Configuro WSL2 y Ubuntu?

Consulta el tutorial en Configuración de WSL2 y Ubuntu.

Por favor nota: El entrenamiento de fuentes personalizadas requiere Linux.

WSL2 es suficiente: una vez finalizado el entrenamiento, el archivo .traineddata resultante se envía con su aplicación IronOCR en Windows, macOS, Linux o Docker. Para detalles de implementación, vea la guía de implementación en Linux.

¿Cómo Instalo Tesseract 5 en Ubuntu?

Utilice estos comandos para instalar Tesseract 5:

sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
SHELL

El paquete tesseract-ocr es el motor que ejecuta el reconocimiento; libtesseract-dev expone los encabezados que tesstrain necesita para construir un modelo. Una vez que su archivo entrenado está en uso, la guía de configuración de Tesseract cubre la afinación en tiempo de ejecución.

¿Cómo Preparo la Fuente para Entrenamiento?

¿Qué Fuente Debería Descargar?

Este tutorial utiliza la fuente AMGDT, en formato .ttf o .otf.

Explorador de archivos de Windows mostrando el archivo de fuente AMGDT Regular.ttf descargado destacado en un cuadro rojo para entrenamiento

Al elegir una fuente para entrenar:

  • Elija fuentes que el modelo inglés predeterminado ya interprete incorrectamente. Entrenar una fuente que ya es reconocida desperdicia tiempo.
  • Confirme que la licencia de la fuente permite la redistribución si su .traineddata se enviará con una aplicación.
  • Las fuentes decorativas, manuscritas y específicas de la industria (médica, legal, cartográfica) obtienen la mayor precisión del entrenamiento.
  • Haga coincidir las muestras de entrenamiento con lo que realmente verá en producción, incluyendo resolución e iluminación.

¿Cómo Montar la Unidad de Disco?

Monte la unidad D: como su espacio de trabajo:

cd /
cd /mnt/d
SHELL

WSL2 monta cada unidad de Windows bajo /mnt/<letra>, por lo que puede editar archivos en Windows y ejecutar comandos de entrenamiento contra ellos en la misma sesión.

¿Cómo Copiar el Archivo de Fuente a la Carpeta de Fuentes de Ubuntu?

Tesseract renderiza texto de muestra en su fuente para construir imágenes de entrenamiento, por lo que la fuente debe estar instalada en el lado de Linux, no solo en Windows. Copie el archivo de fuente a ambos directorios de fuentes de Ubuntu: /usr/share/fonts y /usr/local/share/fonts. La forma más simple es escribir \wsl$ en la barra de direcciones del Explorador de archivos para navegar por el sistema de archivos de Ubuntu desde Windows, luego arrastrar .ttf.

Explorador de archivos de Windows que muestra la ruta de red \wsl$ para acceder al sistema de archivos de Ubuntu desde Windows

Así es como debería verse la copia de la fuente una vez que llega al directorio de fuentes de Ubuntu:

Archivo de fuente AMGDT copiándose en la carpeta de fuentes de Ubuntu y reconocido por el sistema

¿Qué Pasa Si Obtengo Acceso Denegado a la Carpeta de Destino?

Si el Explorador de archivos rechaza la copia, ejecútelo desde una shell root en su lugar:

cd /
su root
cd /c/Users/Admin/Downloads/'AMGDT Regular'
cp 'AMGDT Regular.ttf' /usr/share/fonts
cp 'AMGDT Regular.ttf' /usr/local/share/fonts
exit
SHELL

¿Cómo Clonar los Repositorios de Entrenamiento desde GitHub?

La tubería de entrenamiento depende de tres repositorios. Clone primero el wrapper del tutorial, luego los dos repositorios upstream de Tesseract dentro de él, luego cree la carpeta de salida:

git clone https://github.com/astutejoe/tesseract_tutorial.git
cd tesseract_tutorial
git clone https://github.com/tesseract-ocr/tesstrain
git clone https://github.com/tesseract-ocr/tesseract
mkdir tesstrain/data
SHELL
  • Tesseract_tutorial agrupa los scripts de Python y archivos de configuración que impulsan cada paso de entrenamiento (generación de texto, renderizado de imagen, creación de pares de entrenamiento).
  • tesstrain contiene el Makefile que impulsa la ejecución real del entrenamiento.
  • Tesseract contiene la carpeta tessdata con archivos de .traineddata estándar utilizados como modelo inicial para el entrenamiento personalizado.
  • tesstrain/data es donde aterrizan todos los archivos .box generados (cajas delimitadoras de caracteres), imágenes .tif y puntos de control LSTM intermedios.

Así es como debería verse la secuencia de clonación en la terminal:

Terminal ejecutando los cuatro comandos git clone y creando la carpeta de datos tesstrain

Para trabajar con múltiples paquetes de idioma junto con uno personalizado, consulte nuestra guía de idiomas internacionales.

¿Cómo Generar Archivos de Entrenamiento?

¿Cómo Ejecutar el Script split_training_text.py?

Desde la carpeta Tesseract_tutorial, ejecute:

python split_training_text.py
SHELL

El script genera un par de .box / .tif por muestra de entrenamiento y los escribe en la carpeta de datos.

Así es como debería verse la ejecución del script mientras genera los pares de entrenamiento:

Terminal ejecutando split_training_text.py y generando archivos .box y .tif en la carpeta de datos

¿Cómo Corregir la Advertencia de Fontconfig?

Terminal mostrando advertencias de fontconfig sobre la falta de la fuente Apex y errores de directorio de fuentes vacíos

Si ve la advertencia Fontconfig warning: "/tmp/fonts.co/nf, línea 4: el nombre del directorio de fuentes vacío fue ignorado", fontconfig no puede resolver los directorios de fuentes. Corríjalo editando tesseract_tutorial/fonts.co/nf:

<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>
<!-- the following element will be removed in the future -->
<dir>~/.fonts</dir>
XML

Cópielo a /etc/fonts:

cp fonts.co/nf /etc/fonts
SHELL

Luego apunte split_training_text.py a la misma ruta:

fontconf_dir = '/etc/fonts'
Python

¿Cuántos Archivos de Entrenamiento Debería Generar?

Por defecto, el script genera 100 pares de entrenamiento. Cambie el conteo cerca de la parte superior de split_training_text.py:

Código de Python configurando count=100 y cortando la matriz de líneas para limitar el tamaño de los datos de entrenamiento

Guía de dimensionamiento:

  • 100-500 muestras son suficientes para confirmar que la tubería funciona de principio a fin.
  • 1000-5000 muestras son el rango de trabajo para la precisión en producción.
  • El texto de entrenamiento debe cubrir cada carácter que su fuente necesita reconocer, idealmente varias veces cada uno.
  • Más muestras significan más tiempo de entrenamiento; elija el conteo más pequeño que logre su objetivo de precisión.

¿Dónde Descargo el Archivo eng.traineddata?

Descargue eng.traineddata del repositorio tessdata_best y colóquelo en Tesseract_tutorial/tesseract/tessdata.

El modelo base da al entrenador contexto lingüístico (qué secuencias de caracteres forman palabras plausibles), por lo que la precisión es mucho mejor que entrenar desde cero. Elija un modelo base en el mismo idioma que su texto de entrenamiento. Si enfrenta problemas, vea la guía de solución de problemas de paquetes de idiomas OCR personalizados.

¿Cómo Construyo Mi Archivo de Datos de Fuente Entrenado Personalizado?

Desde la carpeta tesstrain, ejecute:

TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
SHELL
  • MODEL_NAME es el nombre de su fuente personalizada (utilizado para el nombre del archivo de salida).
  • START_MODEL es el .traineddata base que descargó anteriormente.
  • MAX_ITERATIONS limita la ejecución del entrenamiento; valores más altos típicamente reducen la tasa de error.

¿Qué ocurre si aparece el mensaje "Failed to Read Data" en Makefile?

Para resolver errores "Failed to read data", parche el Makefile:

WORDLIST_FILE := $(OUTPUT_DIR2)/$(MODEL_NAME).lstm-word-dawg
NUMBERS_FILE := $(OUTPUT_DIR2)/$(MODEL_NAME).lstm-number-dawg
PUNC_FILE := $(OUTPUT_DIR2)/$(MODEL_NAME).lstm-punc-dawg
Text

El parche apunta el Makefile al directorio de salida real para que pueda localizar los archivos de diccionario.

¿Cómo solucionar el error "Failed to Load Script Unicharset"?

Descargue Latin.unicharset de langdata_lstm y colóquelo en la carpeta tesstrain/data/langdata.

El archivo .unicharset define qué caracteres se permite que el entrenador emita. Use el archivo que cubra todos los caracteres de su fuente, por ejemplo Cyrillic.unicharset para fuentes cirílicas o Devanagari.unicharset para devanagari.

Así es cómo debería verse una ejecución de entrenamiento exitosa cuando tesstrain produce el archivo .traineddata:

Canalización de compilación de tesstrain ejecutando iteraciones de entrenamiento y emitiendo el archivo AMGDT.traineddata

¿Cómo Verifico la Precisión de Mi Archivo de Datos de Fuente Entrenado?

Con 1000 archivos .box y .tif y 3000 iteraciones de entrenamiento, el resultado AMGDT.traineddata alcanza una tasa de error de entrenamiento (BCER) de alrededor del 5.77%.

Registro de entrenamiento de Tesseract mostrando la mejora del BCER del 6.388% al 5.771% durante las iteraciones 2194-2298

Para probar el modelo entrenado con IronOCR, apunte UseCustomTesseractLanguageFile al archivo y lea una imagen de muestra:

using IronOcr;

// Load the trained model; AutoOsd handles orientation
var ocr = new IronTesseract();
ocr.UseCustomTesseractLanguageFile("path/to/AMGDT.traineddata");
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Preprocess so the model sees clean glyphs
using var input = new OcrInput();
input.LoadImage("test-image-with-amgdt-font.png");
input.EnhanceResolution(300);
input.DeNoise();

// Confidence reflects training quality
var result = ocr.Read(input);
Console.WriteLine($"Text: {result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");

La propiedad Confidence es la puntuación por documento; si se mantiene baja incluso en inputs limpios, las causas más comunes son muy pocas muestras de entrenamiento o un modelo base que no coincide con el script. Una vez que su .traineddata esté verificado, consulte nuestra guía de lenguajes personalizados para el flujo de trabajo general de carga de cualquier archivo de idioma personalizado.

¿Cuáles Son los Puntos Clave para el Entrenamiento de Fuentes Personalizadas?

Entrenar una fuente personalizada es una configuración única: genere pares .box / .tif de su fuente objetivo, construya un modelo .traineddata con tesstrain, luego cárguelo a través de UseCustomTesseractLanguageFile. Desde allí, IronOCR lee imágenes con el nuevo modelo exactamente de la misma manera que lee el inglés estándar.

Ventajas clave de usar IronOCR con un modelo Tesseract personalizado:

  • Reutiliza artefactos estándar de Tesseract: cualquier archivo .traineddata que pueda construir con tesstrain funciona en IronOCR sin conversión.
  • Salida multiplataforma: el entrenamiento requiere Linux (o WSL2), pero el archivo entrenado se envía con su aplicación en Windows, macOS, Linux y Docker.
  • Integración con el resto de la API: combine fuentes personalizadas con múltiples idiomas secundarios, corrección de calidad de imagen, y ajuste de DPI sin cambiar la ruta de reconocimiento.
  • Precisión ajustable: la tasa de error es una función de las muestras de entrenamiento por iteraciones. Ambos controles están expuestos (el conteo de muestra del script más MAX_ITERATIONS) para que pueda ajustar el equilibrio entre el tiempo de entrenamiento y el BCER sin salir de Tesseract.

Para pipelines más grandes, considere el seguimiento del progreso y procesamiento asíncrono al aplicar su modelo entrenado en muchos documentos.

Preguntas Frecuentes

¿Cómo se utiliza un archivo de fuentes personalizadas en C#?

Puede utilizar su archivo de fuentes Tesseract personalizado en IronOCR con sólo unas pocas líneas de código. Simplemente crea una instancia de IronTesseract, llama a UseCustomTesseractLanguageFile() con la ruta a tu archivo .traineddata, y luego usa el método Read() para realizar el OCR en imágenes que contengan tu fuente especial.

¿Cuáles son los requisitos para la formación de fuentes personalizadas para OCR?

La formación personalizada de fuentes requiere un entorno Linux (se recomienda WSL2 con Ubuntu para los usuarios de Windows), Tesseract 5 instalado con las bibliotecas de desarrollo y el archivo de fuentes que desee formar (en formato .ttf u .otf). Los archivos .traineddata resultantes creados en Linux funcionan perfectamente con IronOCR en todas las plataformas.

¿Por qué debería entrenar fuentes personalizadas en lugar de utilizar OCR estándar?

El entrenamiento de fuentes personalizadas mejora la precisión del OCR para fuentes específicas, especialmente fuentes decorativas o especiales que difieren significativamente de los modelos estándar de Tesseract. IronOCR puede utilizar estos archivos de fuentes entrenadas para reconocer con precisión el texto en imágenes que contienen estas fuentes únicas que, de otro modo, serían difíciles de leer con los modelos de OCR estándar.

¿Puedo utilizar fuentes personalizadas en distintas plataformas?

Sí, aunque el proceso de formación requiere Linux, los archivos .traineddata resultantes funcionan sin problemas en todas las plataformas con IronOCR. Esto significa que puede entrenar una vez en Linux y utilizar el archivo de datos entrenado en implementaciones de Windows, macOS o Linux.

¿Qué método de instalación se recomienda para empezar?

Para una instalación rápida, puede descargar la DLL IronOCR directamente o instalarla a través del gestor de paquetes NuGet. Se recomienda NuGet, ya que gestiona las dependencias automáticamente y facilita las actualizaciones. IronOCR proporciona soporte completo para las características de Tesseract 5 y las implementaciones de lenguajes personalizados.

Can I deploy my custom-trained Tesseract model on multiple platforms?

Yes, once trained on a Linux environment, the `.traineddata` file is portable and can be used in applications running on Windows, macOS, Linux, and Docker.

What accuracy can I expect from a custom-trained font model in IronOCR?

The accuracy depends on training samples and iterations during the training process. More samples and iterations generally enhance accuracy, and IronOCR provides confidence scores to evaluate the model.

How can I troubleshoot 'Failed to Read Data' errors during training?

This error can often be resolved by patching the Makefile to correctly point it toward the output directory for dictionary files.

What is the role of the `eng.traineddata` file in custom font training?

`eng.traineddata` serves as the base language model providing linguistic context, which improves the accuracy of the custom-trained font over models built entirely from scratch.

What should I do if I encounter permission issues copying font files during setup?

If you receive a 'Destination Folder Access Denied' message, perform the file copy operation from a root shell in the terminal to ensure proper permissions.

¿Listo para empezar?

Nuget Downloads 6,236,385Versión:2026.9recién lanzado

Obtén tu GRATIS

Clave de prueba de 30 días instantáneamente.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuenta
bullet_testPrueba en producción
sin marcas de agua
bullet_calendarProducto completamente
funcional por 30 días
bullet_supportSoporte técnico 24/5
durante la prueba
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta
Biblioteca C# NuGet para PDF
Instalar con NuGet

Versión: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. En el Explorador de Soluciones, haga clic derecho en Referencias, Administrar Paquetes NuGet
  2. Selecciona Examinar y busca "IronOCR"
  3. Seleccione el paquete e instale
C# PDF DLL
Descargar DLL

Versión: 2026.9

o descargar el instalador de Windows aquí.

  1. Descarga y descomprime IronOCR en una ubicación como ~/Libs dentro de tu directorio de Solución
  2. En Visual Studio Solution Explorer, haz clic derecho en Referencias. Selecciona Examinar, "IronOCR.dll"

Licencias desde $999

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta