Entrenamiento de fuentes personalizadas en C# para Tesseract 5 (para usuarios de Windows)
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.
Cómo utilizar la fuente personalizada Tesseract en C#
- Descarga una biblioteca C# para entrenar fuentes personalizadas con Tesseract
- Preparar el archivo de fuentes que se utilizará para la formación
- Siga los pasos especificados en el artículo
- Contiene soluciones para los errores más frecuentes
- Exporte el archivo de datos entrenados para su uso posterior
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
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
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
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
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
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.
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
)
"Failed to read data from:" se puede resolver editando líneas de código en Makefile
Antes:
Después:
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
Latin.unicharset
se puede encontrar en la siguiente URL; https://github.com/tesseract-ocr/langdata_lstm
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.
Para más lectura y referencia adicional: ref: https://www.youtube.com/watch?v=KE4xEzFGSU8ustom