Entrenamiento de fuentes personalizadas en C# para Tesseract 5 (para usuarios de Windows)

Kannapat related to Entrenamiento de fuentes personalizadas en C# para Tesseract 5 (para usuarios de Windows)
Kannapat Udonpant
5 de marzo, 2023
Actualizado 10 de diciembre, 2024
Compartir:
This article was translated from English: Does it need improvement?
Translated
View the article in English

Utilice Custom font training for Tesseract 5 para mejorar la precisión y las capacidades de reconocimiento del motor de OCR cuando trabaje con fuentes o estilos de fuente específicos que pueden no estar bien soportados por defecto.

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

Comience con IronOCR

Comience a usar IronOCR en su proyecto hoy con una prueba gratuita.

Primer Paso:
green arrow pointer



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

Instalación mediante DLL

Descarga la DLL de IronOcr directamente a tu máquina.

Instalación mediante NuGet

Alternativamente, puedes instalar a través de NuGet.

Install-Package IronOcr

Paso 2: Instalar y configurar WSL2 y Ubuntu

Aquí está el tutorial para configurar WSL2 y Ubuntu

** Actualmente, el entrenamiento de fuentes personalizadas solo se puede realizar en Linux

Paso 3: Instalar Tesseract 5 en Ubuntu

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

Paso 4: Descargue la fuente que desea entrenar

En este tutorial utilizaremos la fuente AMGDT. El archivo de fuente puede ser tanto .ttf como .otf

Example Of Downloaded Font File related to Paso 4: Descargue la fuente que desea entrenar

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

El siguiente comando muestra cómo montar la unidad D: como un espacio de trabajo.

cd /
cd /mnt/d

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

Este es el directorio de la carpeta de fuentes de Ubuntu; Ubuntu/usr/share/fonts y Ubuntu/usr/local/share/fonts.

** Para acceder al archivo en Ubuntu, escriba \\\wsl$ en el directorio del explorador de archivos

Ubutu Folder Directory related to Paso 6: Copiar el archivo de fuentes a la carpeta de fuentes de Ubuntu

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

Destination Folder Access Denied related to Solución de problemas: Acceso a la carpeta de destino denegado

Este problema puede resolverse copiando el archivo mediante la línea de comandos

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
su username

Paso 7: Clonar tesseract_tutorial desde Github

El repositorio tesseract_tutorial se puede clonar desde la siguiente URL; https://github.com/astutejoe/tesseract_tutorial.git utilizando el siguiente comando;

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

Paso 8: Clonar tesstrain y tesseract desde Github

Vaya al directorio de la carpeta tesseract_tutorial, luego ejecute git clone https://github.com/tesseract-ocr/tesstrain y https://github.com/tesseract-ocr/tesseract

  • tesstrain contiene un archivo "Makefile" que se utiliza para crear un archivo .traineddata (objetivo de este tutorial)
  • tesseract contiene la carpeta "tessdata", que es un contenedor del archivo original .traindata que se utiliza como referencia para la formación de fuentes personalizadas.

Paso 9: Crear la carpeta "data" para almacenar los resultados

Los "datos" deben crearse en tesseract_tutorial/tesstrain.

Paso 10: Ejecute split_training_text.py

Regresar al directorio de la carpeta tesseract_tutorial y luego compilar el siguiente comando;

python split_training_text.py

Después de ejecutar split_training_text.py, se crearán los archivos .box y .tif en la carpeta “data”.

Solución de problemas: Advertencia de Fontconfig: "/tmp/fonts.conf", línea 4: nombre de directorio de fuentes vacío ignorado

Fontconfig Warning related to Solución de problemas: Advertencia de Fontconfig: "/tmp/fonts.conf", línea 4: ...

Este problema se debe a que no se puede encontrar el directorio de fuentes en la carpeta de Ubuntu y se puede solucionar insertando estas líneas de código en tesseract_tutorial/fonts.conf.

Fontconfig Dir Png related to Solución de problemas: Advertencia de Fontconfig: "/tmp/fonts.conf", línea 4: ...

y

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

Luego cópialo en /etc/fonts

cp fonts.conf /etc/fonts

Finalmente, agregue estas líneas de código a split_training_text.py

Fontconfig Sol related to Solución de problemas: Advertencia de Fontconfig: "/tmp/fonts.conf", línea 4: nomb...

y


fontconf_dir = '/etc/fonts`

Nota: Número de archivos de formación (.box y .tif)

Actualmente el número de ficheros de entrenamiento es 100. Este número de archivos de entrenamiento puede ser en la edición o eliminación de estas líneas de código en split_training_text.py.

Number Of Trainfile related to Nota: Número de archivos de formación (.box y .tif)

Paso 11: Descargar eng.traineddata

El archivo eng.traineddata se puede encontrar en la siguiente URL: https://github.com/tesseract-ocr/tessdata_best. Descárguelo en tesseract_tutorial/tesseract/tessdata porque este eng.traineddata en tessdata_best es mejor que el original en la carpeta tessdata.

Paso 12: Cree su fuente personalizada .traineddata

Vaya al directorio de la carpeta tesstrain y coloque esta línea de comando en el WSL2


TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
  • Hacer entrenamiento = ejecutar código en tesstrain/Makefile
  • MODEL_NAME = el nombre de su fuente personalizada
  • START_MODEL = el nombre del archivo .traineddata original
  • MAX_ITERATIONS = número de iteraciones (un número mayor significa más precisión de .traineddata)

    Makefile Issues related to Paso 12: Cree su fuente personalizada .traineddata

"Failed to read data from: " puede solucionarse editando líneas de código en Makefile

Antes:

Makefile Sol Before related to "Failed to read data from: " puede solucionarse editando líneas de código en ...

Después:

Image

y


make - 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

“Failed to load script unicharset from:data/langdata/Latin.unicharset” se puede solucionar insertando Latin.unicharset en la carpeta tesstrain/data/langdata

Paso 13: La precisión del .traineddata creado

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

Traineddata Accuracy related to Paso 13: La precisión del .traineddata creado

Para más lectura y referencia adicional: ref: https://www.youtube.com/watch?v=KE4xEzFGSU8ustom

Kannapat related to Paso 13: La precisión del .traineddata creado
Ingeniero de software
Antes de convertirse en ingeniero de software, Kannapat realizó un doctorado en Recursos Medioambientales en la Universidad de Hokkaido (Japón). Mientras cursaba su licenciatura, Kannapat también se convirtió en miembro del Laboratorio de Robótica Vehicular, que forma parte del Departamento de Ingeniería de Bioproducción. En 2022, aprovechó sus conocimientos de C# para unirse al equipo de ingeniería de Iron Software, donde se centra en IronPDF. Kannapat valora su trabajo porque aprende directamente del desarrollador que escribe la mayor parte del código utilizado en IronPDF. Además del aprendizaje entre iguales, Kannapat disfruta del aspecto social de trabajar en Iron Software. Cuando no está escribiendo código o documentación, Kannapat suele jugar con su PS5 o volver a ver The Last of Us.