Cómo entrenar fuentes personalizadas para Tesseract 5 en C#

C# Formación de fuentes personalizadas en Tesseract 5 para desarrolladores de Windows

This article was translated from English: Does it need improvement?
Translated
View the article in English

La formación personalizada de fuentes en Tesseract 5 mejora la precisión del OCR para 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.

como-título:2(Inicio rápido: Usa tu 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.

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronOCR con el gestor de paquetes NuGet

    PM > Install-Package IronOcr

  2. 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;
  3. Despliegue para probar en su entorno real

    Empieza a utilizar IronOCR en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer

¿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 proporciona soporte integral para las funciones de Tesseract 5 e implementaciones de lenguaje personalizado , 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.

Por favor notaLa formación en fuentes personalizadas requiere Linux.

La formación 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
SHELL

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. Explorador de archivos de Windows mostrando el archivo de fuentes AMGDT Regular.ttf descargado resaltado en un recuadro rojo para la formación

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 espacio de trabajo:

cd /
cd /mnt/d
cd /
cd /mnt/d
SHELL

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 fuentes en estos directorios de Ubuntu: /usr/share/fonts y /usr/local/share/fonts.

Accede a los archivos en Ubuntu escribiendo \\wsl$ en la barra de direcciones del explorador de archivos.

Explorador de archivos de Windows mostrando la ruta de red para acceder al sistema de archivos de Ubuntu desde Windows

¿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
SHELL

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 clonar tesseract_tutorial de GitHub?

Clona 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
SHELL

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 clonar tesstrain y tesseract de GitHub?

Navega al directorio tesseract_tutorial, luego clona 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
SHELL
  • tesstrain contiene el Makefile utilizado para crear el archivo .traineddata
  • tesseract contiene la carpeta tessdata con los archivos originales .traineddata utilizados como referencia 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?

Cree una carpeta de datos dentro de tesseract_tutorial/tesstrain:

mkdir tesseract_tutorial/tesstrain/data
mkdir tesseract_tutorial/tesstrain/data
SHELL

Esta carpeta almacena todos los archivos de formación generados, incluidos .box, .tif y artefactos de formación intermedios.

¿Cómo se ejecuta split_training_text.py?

Vuelva a la carpeta tesseract_tutorial y ejecute este comando:

python split_training_text.py
python split_training_text.py
SHELL

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?

Terminal muestra advertencias de fontconfig sobre errores de fuentes Apex faltantes y directorios de fuentes vacíos Si ve la advertencia Fontconfig warning: "/tmp/fonts.conf, línea 4: nombre de directorio de fuentes vacío ignorado", indica que faltan directorios de fuentes. Para ello, edite el archivo tesseract_tutorial/fonts.conf y añada:

<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>
<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ópialo a /etc/fonts con:

cp fonts.conf /etc/fonts
cp fonts.conf /etc/fonts
SHELL

Además, actualiza split_training_text.py:

fontconf_dir = '/etc/fonts'
fontconf_dir = '/etc/fonts'
PYTHON

¿Cuántos archivos de formación debo generar?

La configuración actual genera 100 archivos de formación. Puede modificar esto en split_training_text.py.

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

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?

Descarga eng.traineddata de este repositorio y colócalo 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 puedo crear mi fuente personalizada .traineddata?

Vaya a la carpeta tesstrain y utilice 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
SHELL
  • MODEL_NAME es el nombre de su fuente personalizada
  • START_MODEL es la referencia original .traineddata
  • MAX_ITERATIONS define 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"?

Inserta Latin.unicharset en la carpeta tesstrain/data/langdata. Encuentre 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 exactitud de los .traineddata creados?

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

Log de entrenamiento de Tesseract que muestra una mejora de BCER del 6,388% al 5,771% en las iteraciones 2194-2298

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}%");
$vbLabelText   $csharpLabel

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.

Kannaopat Udonpant
Ingeniero de Software
Antes de convertirse en Ingeniero de Software, Kannapat completó un doctorado en Recursos Ambientales de la Universidad de Hokkaido en Japón. Mientras perseguía su grado, Kannapat también se convirtió en miembro del Laboratorio de Robótica de Vehículos, que es parte del Departamento de Ingeniería ...
Leer más
Revisado por
Jeff Fritz
Jeffrey T. Fritz
Gerente Principal de Programas - Equipo de la Comunidad .NET
Jeff también es Gerente Principal de Programas para los equipos de .NET y Visual Studio. Es el productor ejecutivo de la serie de conferencias virtuales .NET Conf y anfitrión de 'Fritz and Friends', una transmisión en vivo para desarrolladores que se emite dos veces a la semana donde habla sobre tecnología y escribe código junto con la audiencia. Jeff escribe talleres, presentaciones, y planifica contenido para los eventos de desarrolladores más importantes de Microsoft, incluyendo Microsoft Build, Microsoft Ignite, .NET Conf y la Cumbre de Microsoft MVP.
¿Listo para empezar?
Nuget Descargas 5,299,091 | Versión: 2025.12 recién lanzado