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

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

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

Utiliza la capacitación de fuentes personalizadas para Tesseract 5 para mejorar la precisión y las capacidades de reconocimiento del motor OCR cuando se trabaja con fuentes específicas o estilos de fuentes que pueden no estar bien soportados por defecto.

El proceso implica proporcionar a Tesseract datos de entrenamiento, como muestras de fuentes y texto correspondiente, para que pueda aprender las características y patrones específicos de las fuentes personalizadas.

como-título:2(Inicio rápido: Usa tu archivo de fuente .traineddata en C#)

Aquí te explicamos cómo puedes usar tu archivo de fuente Tesseract entrenada personalizadamente en IronOCR en solo un par de líneas. Ideal para obtener OCR preciso para fuentes especiales o decorativas rápidamente.

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

Paso 1: Descargue la última versión de IronOCR

Instalar vía DLL

Descarga la IronOCR DLL directamente a tu máquina.

Instalar a través de NuGet

Alternativamente, puedes instalar a través de NuGet con el siguiente comando:

Install-Package IronOcr

Paso 2: Instalar y configurar WSL2 y Ubuntu

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

Por favor notaEl entrenamiento de fuentes personalizado actualmente solo se puede realizar en Linux.

Paso 3: Instalar Tesseract 5 en Ubuntu

Usa los siguientes 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

Paso 4: Descarga la fuente que deseas entrenar

Estamos usando la fuente AMGDT para este tutorial. El archivo de fuente puede ser .ttf o .otf. Ejemplo de archivo de fuente descargado

Paso 5: Monte la unidad de disco de su espacio de trabajo para la capacitación sobre fuentes personalizadas

Usa los comandos a continuación para montar la unidad D: como tu espacio de trabajo.

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

Paso 6: Copiar el archivo de fuente a la carpeta de fuentes de Ubuntu

Copia el archivo de fuente a los siguientes 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.

Directorio de carpetas de Ubuntu

Solución de problemas: acceso denegado a la carpeta de destino

Si encuentras errores de acceso denegado, resuelve esto usando la línea de comandos para copiar los 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

Paso 7: Clonar tesseract_tutorial desde GitHub

Clona el repositorio tesseract_tutorial usando el siguiente comando:

git clone https://github.com/astutejoe/tesseract_tutorial.git
git clone https://github.com/astutejoe/tesseract_tutorial.git
SHELL

Paso 8: Clonar tesstrain y tesseract desde 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", que incluye archivos .traindata originales utilizados como referencia durante el entrenamiento de fuentes personalizadas.

Paso 9: Crear una carpeta de "datos" para almacenar los resultados

Crea una carpeta "data" dentro de tesseract_tutorial/tesstrain.

Paso 10: Ejecute split_training_text.py

Regresa a la carpeta tesseract_tutorial y ejecuta el siguiente comando:

python split_training_text.py
python split_training_text.py
SHELL

Después de ejecutar split_training_text.py, creará archivos .box y .tif en la carpeta "data".

Solución de problemas: Advertencia de Fontconfig

Advertencia de configuración de fuentes Si ves la advertencia Fontconfig warning: "/tmp/fonts.conf, line 4: empty font directory name ignored", se debe a directorios de fuentes faltantes. Resuelve 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>
<!-- 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

Nota: Número de archivos de entrenamiento (.box y .tif)

El número actual de archivos de entrenamiento está configurado en 100. Puedes modificar esto en split_training_text.py.

Establece el número de archivos de entrenamiento

Paso 11: Descargar eng.traineddata

Descarga eng.traineddata de este repositorio y colócalo en tesseract_tutorial/tesseract/tessdata.

Paso 12: Crea tu fuente personalizada .traineddata

Navega a la carpeta tesstrain y usa el comando a continuación 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 tu fuente personalizada.
  • START_MODEL es la referencia original de .traineddata.
  • MAX_ITERATIONS define el número de iteraciones (más iteraciones pueden mejorar la precisión de .traineddata).

Solución de problemas: "Error al leer datos" 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

Solución de problemas: "Error al cargar el script Unicharset"

Inserta Latin.unicharset en la carpeta tesstrain/data/langdata. El Latin.unicharset se puede encontrar aquí.

Paso 13: Verificar la precisión del archivo .traineddata creado

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

Precisión de Traineddata

Para una lectura y referencia adicionales, consulta el tutorial: Video de YouTube

Preguntas Frecuentes

¿Cómo puedo entrenar una fuente personalizada para usar con Tesseract en C#?

Para entrenar una fuente personalizada para Tesseract usando C#, primero debes descargar IronOCR, preparar tu archivo de fuente, y configurar un entorno Linux a través de WSL2 y Ubuntu en Windows, ya que el entrenamiento de fuentes personalizadas de Tesseract sólo es compatible en Linux.

¿Cuáles son los pasos para instalar Tesseract 5 en un sistema Windows usando WSL2?

Para instalar Tesseract 5 en Windows usando WSL2, debes configurar Ubuntu y luego usar los comandos sudo apt install tesseract-ocr y sudo apt install libtesseract-dev para completar la instalación.

¿Qué debo hacer si encuentro errores de 'Acceso Denegado a la Carpeta de Destino' al copiar archivos de fuentes?

Si enfrentas errores de 'Acceso Denegado a la Carpeta de Destino', utiliza la línea de comandos con acceso root para copiar los archivos de fuentes en los directorios necesarios y evitar problemas de permisos.

¿Por qué es necesario un entorno Linux para el entrenamiento de fuentes personalizadas en Tesseract?

Se requiere un entorno Linux para el entrenamiento de fuentes personalizadas en Tesseract porque las herramientas de entrenamiento están diseñadas para ejecutarse en sistemas tipo Unix, y WSL2 puede usarse para emular este entorno en Windows.

¿Cómo soluciono los errores de 'advertencia de Fontconfig' al entrenar fuentes personalizadas?

Para resolver los errores de 'advertencia de Fontconfig', debes añadir las rutas del directorio de fuentes al archivo fonts.conf y asegurar que se copie al directorio /etc/fonts.

¿Cuál es el propósito del repositorio 'tesstrain' en el entrenamiento de fuentes personalizadas?

El repositorio 'tesstrain' se utiliza para crear el archivo .traineddata necesario para el entrenamiento de fuentes personalizadas en Tesseract, proporcionando los scripts y el Makefile necesarios para el proceso.

¿Cómo puedo resolver el error 'Falló al Cargar el Script Unicharset'?

Para solucionar el error 'Falló al Cargar el Script Unicharset', debes insertar el Latin.unicharset en la carpeta tesstrain/data/langdata para asegurar que el conjunto de caracteres necesario esté disponible.

¿Cómo verifico la precisión de mis datos entrenados personalizados en Tesseract?

Puedes verificar la precisión de tus datos entrenados personalizados comprobando la tasa de error de entrenamiento, conocida como BCER, y asegurándote de que sea mínima después de suficientes iteraciones y ajustes de los archivos de entrenamiento.

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,167,857 | Version: 2025.11 recién lanzado