Entrenamiento de fuentes personalizadas en Tesseract 5 para convertir imagen a texto con mayor precisión
La formación personalizada de fuentes en Tesseract 5 mejora el reconocimiento de texto al convertir imagen a texto con fuentes específicas. El proceso crea datos de entrenamiento que enseñan al motor las características de las fuentes. El archivo .traineddata resultante funciona con IronOCR para reconocer fuentes decorativas o especiales con precisión.
Inicio rápido: Cómo usar su archivo de fuente .traineddata en C#
Utilice su archivo de fuentes Tesseract personalizado en IronOCR con sólo unas pocas líneas. Perfecto para un OCR preciso en fuentes especiales o decorativas.
-
Instala IronOCR con el Administrador de Paquetes NuGet
PM > Install-Package IronOcr -
Copie y ejecute este fragmento de código.
var ocr = new IronOcr.IronTesseract(); ocr.UseCustomTesseractLanguageFile("path/to/YourCustomFont.traineddata"); string text = ocr.Read(new IronOcr.OcrInput("image-with-special-font.png")).Text; -
Despliegue para probar en su entorno real
Comienza a usar IronOCR en tu proyecto hoy mismo con una prueba gratuita
- Descargue una biblioteca de C# para entrenar fuentes personalizadas
- Preparar el archivo de fuentes de destino para la formación
- Siga los pasos de este artículo
- Aplique soluciones para errores comunes
- Exportar el archivo de datos entrenado
¿Cómo descargo la última versión de IronOCR?
¿Qué método de instalación debo utilizar?
Descarga la IronOCR DLL directamente a tu máquina.
¿Por qué usar NuGet?
Alternativamente, instale a través de NuGet con este comando:
Install-Package IronOcr
IronOCR ofrece compatibilidad completa con funciones de Tesseract 5 y implementaciones de lenguajes personalizados, lo que lo hace ideal para requisitos de OCR especializados.
¿Cómo instalar y configurar WSL2 y Ubuntu?
Consulta el tutorial en Configuración de WSL2 y Ubuntu.
El entrenamiento requiere Linux, pero los archivos .traineddata resultantes funcionan sin problemas en todas las plataformas. Para obtener instrucciones detalladas sobre la instalación de Linux, consulte nuestra Guía de instalación de Linux.
¿Cómo instalar Tesseract 5 en Ubuntu?
Utilice estos comandos para instalar Tesseract 5:
sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
Estos paquetes proporcionan el núcleo del motor Tesseract OCR y las bibliotecas de desarrollo necesarias para la formación. Para conocer las opciones avanzadas de configuración de Tesseract, consulte nuestra guía detallada de configuración.
¿Qué fuente debo descargar para la formación?
Este tutorial utiliza la fuente AMGDT. El archivo de fuente puede ser .ttf o .otf. 
A la hora de seleccionar fuentes para la formación:
- Elija fuentes que difieran significativamente de los modelos estándar de Tesseract
- Garantizar la licencia adecuada de la fuente
- Considere fuentes decorativas, manuscritas o especializadas en la industria
- Pruebe con las fuentes que su aplicación encuentra en producción
¿Cómo se monta la unidad de disco para la formación de fuentes personalizadas?
Utilice estos comandos para montar la unidad D: como su espacio de trabajo:
cd /
cd /mnt/d
cd /
cd /mnt/d
Esto permite trabajar con archivos almacenados en unidades Windows directamente desde el entorno WSL2 de Ubuntu.
¿Cómo copio el archivo de fuentes a la carpeta de fuentes de Ubuntu?
Copie el archivo de fuente a estos directorios de Ubuntu: /usr/share/fonts y /usr/local/share/fonts.
Acceda a los archivos en Ubuntu escribiendo \\wsl$ en la barra de direcciones del explorador de archivos.

¿Qué ocurre si se deniega el acceso a la carpeta de destino?
Si se encuentra con errores de acceso denegado, utilice la línea de comandos para copiar archivos:
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
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
La instalación de fuentes es crucial para el proceso de formación. El sistema necesita acceso para renderizar la fuente al generar imágenes de formación.
¿Cómo clono tesseract_tutorial desde GitHub?
Clone el repositorio tesseract_tutorial usando este comando:
git clone https://github.com/astutejoe/tesseract_tutorial.git
git clone https://github.com/astutejoe/tesseract_tutorial.git
Este repositorio contiene scripts de Python y archivos de configuración esenciales para el proceso de formación. Los scripts automatizan muchos pasos manuales en la formación de fuentes.
¿Cómo clono tesstrain y tesseract desde GitHub?
Navegue al directorio tesseract_tutorial, luego clone los repositorios tesstrain y tesseract:
git clone https://github.com/tesseract-ocr/tesstrain
git clone https://github.com/tesseract-ocr/tesseract
git clone https://github.com/tesseract-ocr/tesstrain
git clone https://github.com/tesseract-ocr/tesseract
tesstraincontiene el Makefile utilizado para crear el archivo.traineddatatesseractcontiene la carpeta tessdata con los archivos.traineddataoriginales utilizados como referencias durante el entrenamiento de fuentes personalizadas
Para obtener más información sobre cómo trabajar con paquetes de varios idiomas y datos de formación personalizados, consulte nuestra guía de idiomas internacionales.
¿Cómo crear una carpeta de "datos" para almacenar los resultados?
Crea una carpeta de datos dentro de tesseract_tutorial/tesstrain:
mkdir tesseract_tutorial/tesstrain/data
mkdir tesseract_tutorial/tesstrain/data
Esta carpeta almacena todos los archivos de formación generados, incluidos .box, .tif y artefactos de formación intermedios.
¿Cómo ejecuto split_training_text.py?
Regrese a la carpeta tesseract_tutorial y ejecute este comando:
python split_training_text.py
python split_training_text.py
Después de ejecutar split_training_text.py, crea archivos .box y .tif en la carpeta de datos.
¿Cómo puedo corregir la advertencia de Fontconfig?
Si ve la advertencia Fontconfig warning: "/tmp/fonts.conf, line 4: empty font directory name ignored", indica que faltan directorios de fuentes. Solucione esto editando el archivo tesseract_tutorial/fonts.conf y agregando:
<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>
<dir>~/.fonts</dir>
<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>
<dir>~/.fonts</dir>
Cópialo a /etc/fonts con:
cp fonts.conf /etc/fonts
cp fonts.conf /etc/fonts
Además, actualice split_training_text.py:
fontconf_dir = '/etc/fonts'
fontconf_dir = '/etc/fonts'
¿Cuántos archivos de formación debo generar?
La configuración actual genera 100 archivos de formación. Puedes modificar esto en split_training_text.py.

Para una formación de calidad:
- Empezar con 100-500 muestras para pruebas
- Utilice 1000-5000 muestras para una mayor precisión
- Incluya diversas muestras de texto que cubran todos los caracteres requeridos
- Equilibrar el tiempo de formación con los requisitos de precisión
¿Dónde puedo descargar eng.traineddata?
Descargue eng.traineddata de este repositorio y colóquelo en tesseract_tutorial/tesseract/tessdata.
El modelo base proporciona un contexto lingüístico que mejora la precisión del reconocimiento. Elija un modelo base que coincida con el idioma de destino. Para solucionar problemas de paquetes de idiomas personalizados, consulte nuestra guía de paquetes de idiomas personalizados de OCR.
¿Cómo creo mi fuente personalizada .traineddata?
Navegue a la carpeta tesstrain y use este comando en WSL2:
TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
MODEL_NAMEes el nombre de tu fuente personalizadaSTART_MODELes la referencia original.traineddataMAX_ITERATIONSdefine el número de iteraciones (más iteraciones mejoran la precisión)
¿Qué ocurre si aparece el mensaje "Failed to Read Data" en Makefile?
Para resolver problemas de "Error al leer datos", modifica 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
Esta modificación garantiza que el Makefile busque los archivos en la estructura de directorios de salida correcta.
¿Cómo solucionar el error "Failed to Load Script Unicharset"?
Inserte Latin.unicharset en la carpeta tesstrain/data/langdata. Encuentra Latin.unicharset aquí .
El archivo unicharset define el juego de caracteres de su idioma o script. Asegúrese de que coincide con la cobertura de caracteres de su fuente.
¿Cómo puedo verificar la precisión del código .traineddata creado?
Con 1000 archivos .box y .tif y 3000 iteraciones de entrenamiento, la salida AMGDT.traineddata logra una tasa de error de entrenamiento mínima (BCER) de alrededor del 5,77 %.

Para probar su modelo entrenado con IronOCR:
using IronOcr;
// Initialize IronOCR with custom trained data
var ocr = new IronTesseract();
// Load your custom trained font
ocr.UseCustomTesseractLanguageFile(@"path\to\AMGDT.traineddata");
// Configure for optimal results
ocr.Configuration.BlackListCharacters = "";
ocr.Configuration.WhiteListCharacters = "";
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;
// Process an image with your custom font
using var input = new OcrInput();
input.LoadImage("test-image-with-amgdt-font.png");
// Optional: Apply filters if needed
input.EnhanceResolution(300);
input.DeNoise();
// Perform OCR
var result = ocr.Read(input);
Console.WriteLine($"Recognized Text: {result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");
using IronOcr;
// Initialize IronOCR with custom trained data
var ocr = new IronTesseract();
// Load your custom trained font
ocr.UseCustomTesseractLanguageFile(@"path\to\AMGDT.traineddata");
// Configure for optimal results
ocr.Configuration.BlackListCharacters = "";
ocr.Configuration.WhiteListCharacters = "";
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;
// Process an image with your custom font
using var input = new OcrInput();
input.LoadImage("test-image-with-amgdt-font.png");
// Optional: Apply filters if needed
input.EnhanceResolution(300);
input.DeNoise();
// Perform OCR
var result = ocr.Read(input);
Console.WriteLine($"Recognized Text: {result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");
Imports IronOcr
' Initialize IronOCR with custom trained data
Dim ocr As New IronTesseract()
' Load your custom trained font
ocr.UseCustomTesseractLanguageFile("path\to\AMGDT.traineddata")
' Configure for optimal results
ocr.Configuration.BlackListCharacters = ""
ocr.Configuration.WhiteListCharacters = ""
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd
' Process an image with your custom font
Using input As New OcrInput()
input.LoadImage("test-image-with-amgdt-font.png")
' Optional: Apply filters if needed
input.EnhanceResolution(300)
input.DeNoise()
' Perform OCR
Dim result = ocr.Read(input)
Console.WriteLine($"Recognized Text: {result.Text}")
Console.WriteLine($"Confidence: {result.Confidence}%")
End Using
Para implementar fuentes personalizadas en aplicaciones de producción, explore nuestra guía sobre utilización de archivos de idioma personalizados.
Para una lectura y referencia adicionales, consulta el tutorial: Video de YouTube
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.

