Formación sobre 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.
Cómo utilizar la fuente personalizada Tesseract en C#
- Descargar 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
Instalar con NuGet
Install-Package IronOcr
Descargar DLL
Instalar manualmente en su proyecto
Instalar con NuGet
Install-Package IronOcr
Descargar DLL
Instalar manualmente en su proyecto
Comience a usar IronPDF en su proyecto hoy con una prueba gratuita.
Echa un vistazo IronOCR en Nuget para una instalación y despliegue rápidos. Con más de 8 millones de descargas, está transformando OCR con C#.
Install-Package IronOcr
Considere instalar el IronOCR DLL directamente. Descárguelo e instálelo manualmente para su proyecto o forma GAC: IronOcr.zip
Instalar manualmente en su proyecto
Descargar DLLInstalación mediante DLL
Descargar el IronOcr DLL directamente a su máquina.
Instalación mediante NuGet
Alternativamente, puede instalar a través de NuGet .
Install-Package IronOcr
Paso 2: Instalar y configurar WSL2 y Ubuntu
Aquí es el tutorial para configurar WSL2 y Ubuntu
** Actualmente, la formación de fuentes personalizadas sólo puede realizarse 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 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
puede clonarse 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 git clone https://github.com/tesseract-ocr/tesstrain y https://github.com/tesseract-ocr/tesseract
- tesstrain contiene el archivo "Makefile" que se utiliza para crear el 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
Vuelve al directorio de la carpeta tesseract_tutorial
y compila 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 es causado por el directorio de fuentes en la carpeta de Ubuntu no se puede encontrar y se puede resolver mediante la inserción de estas líneas de código en tesseract_tutorial/fonts.conf
.
y
<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fuentes</dir>
<!-- el siguiente elemento se eliminará en el futuro -->
<dir>~/.fonts</dir>
A continuación, cópielo en /etc/fonts
.
cp fonts.conf /etc/fonts
Por último, añade 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
Puede encontrar eng.traineddata
en la siguiente url:https://github.com/tesseract-ocr/tessdata_best. Descárgalo 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 ponga 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 original
.traineddata
. MAX_ITERATIONS = número de iteraciones(un número mayor significa mayor 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
ARCHIVO_LISTA_PALABRAS := $(OUTPUT_DIR2)/$(NOMBRE_MODELO).lstm-palabra-dawg
FICHERO_NUMEROS := $(OUTPUT_DIR2)/$(NOMBRE_MODELO).lstm-number-dawg
ARCHIVO_PUNC := $(OUTPUT_DIR2)/$(NOMBRE_MODELO).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
.
- Puede encontrar
Latin.unicharset
en la siguiente url; https://github.com/tesseract-ocr/langdata_lstm
Paso 13: Precisión de los .traineddata
creados
Con 1000 archivos .box
y .tif
y 3000 iteraciones de entrenamiento, el resultado .traineddta
es el siguiente(AMGDT.traineddata) tiene un porcentaje mínimo de errores de formación(BCER) alrededor de 5,77
Para más información y referencias: ref: https://www.youtube.com/watch?v=KE4xEzFGSU8ustom