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

Kannaopat Udonpant
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 el DLL de IronOCR directamente en 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 le gustaría 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 le gustaría 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: Copia el archivo de fuente 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: Copia el archivo de fuente 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: Clona tesstrain y tesseract desde Github

Vaya al directorio de la carpeta tesseract_tutorial, luego git clone https://github.com/tesseract-ocr/tesstrain and 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 utilizado como referencia para el entrenamiento 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 del directorio de fuentes vacío ignorado

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

Este problema es causado porque 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: nombre...

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: nombre del...

y


fontconf_dir = '/etc/fonts`

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

Actualmente, el número de archivos de entrenamiento es 100. Este número de archivos de entrenamiento puede estar 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 entrenamiento (.box y .tif)

Paso 11: Descargar eng.traineddata

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 tu fuente personalizada
  • START_MODEL = el nombre del archivo original .traineddata
  • 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:" se puede resolver editando líneas de código en Makefile

Antes:

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

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

Kannaopat Udonpant
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.