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 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
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
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
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
.
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 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.
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
)
"Failed to read data from: " puede solucionarse 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