# Cómo Entrenar una Fuente Personalizada con Tesseract 5 en C#
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.
*as-heading:2(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.
```cs
:title=Quickly Load Your Custom Trained Font with IronOCR
using IronOcr;
var ocr = new IronTesseract();
ocr.UseCustomTesseractLanguageFile("path/to/YourCustomFont.traineddata");
string text = ocr.Read(new OcrInput("image-with-special-font.png")).Text;
```
<div class="hsg-featured-snippet">
<h3>Flujo de trabajo mínimo (5 pasos)</h3>
<ol>
<li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://nuget.org/packages/IronOcr/">Descargue IronOCR a través de NuGet para leer con fuentes entrenadas personalizadas</a></li>
<li>Instale Tesseract 5 en WSL2 Ubuntu y clone los repositorios de entrenamiento <code>tesstrain</code></li>
<li>Genere archivos de entrenamiento para su fuente objetivo con <code>split_training_text.py</code></li>
<li>Construya su archivo <code>.traineddata</code> personalizado usando <code>tesstrain</code> y un modelo de idioma base</li>
<li>Cargue el archivo entrenado en IronOCR con <code>UseCustomTesseractLanguageFile</code> y llame a <code>Read</code></li>
</ol>
</div>
## ¿Cómo Configuro el Entorno de Entrenamiento?
### ¿Cómo Instalo IronOCR?
Instale IronOCR a través de [NuGet](https://www.nuget.org/packages/IronOcr/):
```shell
:ProductInstall
```
El [paquete DLL](/csharp/ocr/packages/IronOcr.zip) es una alternativa manual si no puede usar NuGet. Para el motor subyacente, consulte la [guía de características de Tesseract 5](https://ironsoftware.com/csharp/ocr/tutorials/c-sharp-tesseract-ocr/) y la [referencia de idiomas personalizados](https://ironsoftware.com/csharp/ocr/examples/ocr-tesseract-custom-languages/).
### ¿Cómo Instalo y Configuro WSL2 y Ubuntu?
Consulta el tutorial en [Configuración de WSL2 y Ubuntu](https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10).
[[i:(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](https://ironsoftware.com/csharp/ocr/get-started/linux/).
### ¿Cómo Instalo Tesseract 5 en Ubuntu?
Utilice estos comandos para instalar Tesseract 5:
```bash
sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
```
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](https://ironsoftware.com/csharp/ocr/examples/csharp-configure-setup-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`.

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:
```bash
cd /
cd /mnt/d
```
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`.

Así es como debería verse la copia de la fuente una vez que llega al directorio de fuentes de Ubuntu:
<img src="/static-assets/ocr/how-to/ocr-custom-font-training/amdfont.gif" alt="Archivo de fuente AMGDT copiándose en la carpeta de fuentes de Ubuntu y reconocido por el sistema" class="img-responsive add-shadow" style="max-width: 720px; width: 100%; display: block; margin: 0 auto 30px auto;"/>
#### ¿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:
```bash
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
```
## ¿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:
```bash
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
```
- 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:
<img src="/static-assets/ocr/how-to/ocr-custom-font-training/gitlogs.gif" alt="Terminal ejecutando los cuatro comandos git clone y creando la carpeta de datos tesstrain" class="img-responsive add-shadow" style="max-width: 720px; width: 100%; display: block; margin: 0 auto 30px auto;"/>
Para trabajar con múltiples paquetes de idioma junto con uno personalizado, consulte nuestra [guía de idiomas internacionales](https://ironsoftware.com/csharp/ocr/examples/intl-languages/).
## ¿Cómo Generar Archivos de Entrenamiento?
### ¿Cómo Ejecutar el Script split_training_text.py?
Desde la carpeta Tesseract_tutorial, ejecute:
```shell
python split_training_text.py
```
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:
<img src="/static-assets/ocr/how-to/ocr-custom-font-training/pythontest.gif" alt="Terminal ejecutando split_training_text.py y generando archivos .box y .tif en la carpeta de datos" class="img-responsive add-shadow" style="max-width: 720px; width: 100%; display: block; margin: 0 auto 30px auto;"/>
#### ¿Cómo Corregir la Advertencia de Fontconfig?

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`:
```xml
<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>
```
Cópielo a /etc/fonts:
```bash
cp fonts.co/nf /etc/fonts
```
Luego apunte `split_training_text.py` a la misma ruta:
```python
fontconf_dir = '/etc/fonts'
```
#### ¿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`:

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](https://github.com/tesseract-ocr/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](https://ironsoftware.com/csharp/ocr/troubleshooting/custom-ocr-language-packs/).
## ¿Cómo Construyo Mi Archivo de Datos de Fuente Entrenado Personalizado?
Desde la carpeta tesstrain, ejecute:
```bash
TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
```
- 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:
```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
```
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](https://github.com/tesseract-ocr/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`:
<img src="/static-assets/ocr/how-to/ocr-custom-font-training/trainingdatagen.gif" alt="Canalización de compilación de tesstrain ejecutando iteraciones de entrenamiento y emitiendo el archivo AMGDT.traineddata" class="img-responsive add-shadow" style="max-width: 720px; width: 100%; display: block; margin: 0 auto 30px auto;"/>
## ¿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%.

Para probar el modelo entrenado con IronOCR, apunte `UseCustomTesseractLanguageFile` al archivo y lea una imagen de muestra:
```cs
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](https://ironsoftware.com/csharp/ocr/how-to/ocr-custom-language/) 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](https://ironsoftware.com/csharp/ocr/how-to/ocr-multiple-languages/), [corrección de calidad de imagen](https://ironsoftware.com/csharp/ocr/how-to/image-quality-correction/), y [ajuste de DPI](https://ironsoftware.com/csharp/ocr/how-to/dpi-setting/) 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](https://ironsoftware.com/csharp/ocr/how-to/progress-tracking/) y [procesamiento asíncrono](https://ironsoftware.com/csharp/ocr/how-to/async/) al aplicar su modelo entrenado en muchos documentos.
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.
1Install IronOCR with NuGet Package Manager
PM > Install-Package IronOcr
Install-Package IronOcr
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;
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#
3Despliegue para probar en su entorno real
Comienza a usar IronOCR en tu proyecto hoy mismo con una prueba gratuita
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.
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.
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
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.
Así es como debería verse la copia de la fuente una vez que llega al directorio de fuentes de Ubuntu:
¿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:
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:
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
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:
¿Cómo Corregir la Advertencia de Fontconfig?
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>
<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
cp fonts.co/nf /etc/fonts
SHELL
Luego apunte split_training_text.py a la misma ruta:
fontconf_dir = '/etc/fonts'
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:
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
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:
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:
¿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%.
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 orientationvar ocr = new IronTesseract();ocr.UseCustomTesseractLanguageFile("path/to/AMGDT.traineddata");ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;// Preprocess so the model sees clean glyphsusing var input = new OcrInput();input.LoadImage("test-image-with-amgdt-font.png");input.EnhanceResolution(300);input.DeNoise();// Confidence reflects training qualityvar result = ocr.Read(input);Console.WriteLine($"Text: {result.Text}");Console.WriteLine($"Confidence: {result.Confidence}%");
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}%");
ImportsIronOcr' Load the trained model; AutoOsd handles orientationDim ocr As New IronTesseract()ocr.UseCustomTesseractLanguageFile("path/to/AMGDT.traineddata")ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd' Preprocess so the model sees clean glyphsUsing input As New OcrInput() input.LoadImage("test-image-with-amgdt-font.png") input.EnhanceResolution(300) input.DeNoise() ' Confidence reflects training quality Dim result = ocr.Read(input)Console.WriteLine($"Text: {result.Text}")Console.WriteLine($"Confidence: {result.Confidence}%")EndUsing
Imports IronOcr
' Load the trained model; AutoOsd handles orientation
Dim ocr As New IronTesseract()
ocr.UseCustomTesseractLanguageFile("path/to/AMGDT.traineddata")
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd
' Preprocess so the model sees clean glyphs
Using input As New OcrInput()
input.LoadImage("test-image-with-amgdt-font.png")
input.EnhanceResolution(300)
input.DeNoise()
' Confidence reflects training quality
Dim result = ocr.Read(input)
Console.WriteLine($"Text: {result.Text}")
Console.WriteLine($"Confidence: {result.Confidence}%")
End Using
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.
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.
¿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.