Tesseract 4.0 entrena fuentes y reconoce imágenes entrenadas


¡Los enlaces de descarga para cada herramienta se encuentran al final del artículo!

¡importante! ! Primero cree una carpeta vacía (con cualquier nombre) para guardar el modelo entrenado. También debe crear una carpeta llamada tessdata dentro, que debe llamarse

Puede usar las imágenes descargadas para la capacitación de prueba primero (simplemente reemplace la ruta del archivo en el archivo java con la ruta de almacenamiento de su propio paquete de descarga), y las imágenes deben usar las imágenes en el paquete de descarga, porque la capacitación son las imágenes en el paquete de descarga\ color{#2111f1} se puede descargar primero para probarlo y entrenarlo (solo necesita reemplazar la ruta del archivo en el archivo java con la ruta de almacenamiento de su propio paquete de descarga), y la imagen debe usar la imagen en el paquete de descarga, porque el entrenamiento es descargar la imagen dentro de la bolsaPuede usar el descargado para probar y entrenar primero (solo reemplace la ruta del archivo en el archivo java con la ruta de almacenamiento de su propio paquete de descarga), y las imágenes deben usar las imágenes en el paquete de descarga, porque el entrenamiento está en el descargar imagen del paquete




1. Ejecute tesseract − ocr − w 64 − setup − v 4.0.0.20181030.exe archivo Después de la instalación, configure las variables de entorno del sistema (no se describirán las más básicas) \color{#21a2f1} 1. Ejecute tesseract-ocr-w64 -setup-v4.0.0.20181030.exe, después de la instalación, configure las variables de entorno del sistema (no se describirán las más básicas)1. Ejecute t esser a c tLOC64 _configurar _ _ _v 4.0.0.20181030.exe , después de la instalación, configure las variables de entorno del sistema (no se describirán las más básicas )

D:\Program Files (x86)\Tesseract-OCR  只是我配置的路径,就是安装的根路径
在后面用来生成.box文件


2. Use j T ess Box Editor para generar la imagen tif combinada de la muestra de entrenamiento (la imagen ya está preparada, o puede prepararla usted mismo) \color{#21a2f1} 2. Use jTessBoxEditor para generar la imagen tif combinada de la muestra de entrenamiento (La imagen ya está preparada, o puede prepararla usted mismo)2. Use j T ess Box Edi t or para generar la imagen t if combinada de la muestra de entrenamiento ( la imagen ya está preparada, o puede prepararla usted mismo)

  1. Abra jTessBoxEditor, seleccione Herramientas->Combinar TIFF, ingrese a la carpeta donde se encuentran las muestras de capacitación y seleccione las imágenes de muestra para participar en la capacitación:

  2. Haga clic en "Abrir" para que aparezca un cuadro de diálogo para guardar, elija guardarlo en la ruta actual, nombre el archivo "zwp.test.exp0.tif", y solo un formato "TIFF" es opcional.

  3. Nota: El formato de nombre del texto tif es [lang].[fontname].exp[num].tif
    lang es el idioma, fontname es la fuente y num es el número personalizado.
    Por ejemplo, si queremos entrenar una biblioteca de fuentes personalizada zwp, el nombre de la fuente es test, luego llamamos al archivo de imagen zwp.test.exp0.tif



3. Use tesseract para generar el archivo .box \color{#21a2f1} 3. Use tesseract para generar el archivo .box3. Utilice t esser a c t para generar un archivo .box _

Abra el programa de línea de comandos en el directorio donde se encuentra el archivo "zwp.test.exp0.tif" generado en el paso anterior, ejecute el siguiente comando y el archivo zwp.test.exp0.box se generará después de la ejecución.

执行如下命令  tesseract zwp.test.exp0.tif zwp.test.exp0  batch.nochop makebox

4. Use el editor jT ess Box E para corregir errores en archivos .box \color{#21a2f1} 4. Use jTessBoxEditor para corregir errores en archivos .box4. Use j T ess B o x E di t or para corregir errores en archivos .box _

El archivo .box registra la posición de cada carácter en la imagen y el contenido reconocido, porque el contenido y la posición reconocidos pueden combinar dos caracteres o dividir un carácter, por lo que debe usar jTessBoxEditor para ajustar antes de entrenar la posición y el contenido de los caracteres.

Pasos para el uso:

Abra jTessBoxEditor y haga clic en Box Editor -> Abrir, abra el "zwp.test.exp0.tif" generado en el paso 2 y se asociará automáticamente con el archivo "zwp.test.exp0.box". Los dos archivos deben estar en el mismo directorio. Después de ajustar, haga clic en "guardar" para guardar la modificación.

5. Genere el archivo fontproperties: \color{#21a2f1} 5. Genere el archivo font_properties:5. Generar fuente _ _ _pagarchivo ro p er t i es :

  1. Ejecute el siguiente comando: echo test 0 0 0 0 0 >font_properties

  2. También puede crear manualmente un nuevo archivo de texto llamado font_properties e ingresar el contenido "prueba 0 0 0 0 0" para indicar un total de 5 propiedades, como negrita y cursiva, de la prueba de fuente. La "prueba" aquí debe ser consistente con el nombre "prueba" en "zwp.test.exp0.box".

6. Use tesseract para generar el archivo de entrenamiento .tr\color{#21a2f1} 6. Use tesseract para generar el archivo de entrenamiento .tr6. Use tesser a c t para generar archivos de entrenamiento .t r

Ejecute el siguiente comando. Después de la ejecución, el archivo zwp.test.exp0.tr se generará en el directorio actual.

执行如下命令  tesseract zwp.test.exp0.tif zwp.test.exp0 nobatch box.train 

7. Generar archivo de juego de caracteres\color{#21a2f1} 7. Generar archivo de juego de caracteres7. Generar archivo de conjunto de caracteres

Ejecute el siguiente comando: Después de la ejecución, se generará un archivo llamado "unicharset" en el directorio actual.

执行命令 unicharset_extractor zwp.test.exp0.box

8. Generar archivo de forma\color{#21a2f1}8. Generar archivo de forma8. Generar archivo de forma _ _ _

Ejecute el siguiente comando. Después de la ejecución, se generarán dos archivos, shapetable y zwp.unicharset.

执行命令  shapeclustering -F font_properties -U unicharset -O zwp.unicharset zwp.test.exp0.tr

9. Generar archivo de características de caracteres poli\color{#21a2f1}9. Generar archivo de características de caracteres poli9. Genere archivos de características de policaracteres

Ejecutar el siguiente comando generará cuatro archivos: inttemp, pffmtable, shapetable y zwp.unicharset.

执行命令   mftraining -F font_properties -U unicharset -O zwp.unicharset zwp.test.exp0.tr

10. Generar archivo de funciones de normalización de caracteres\color{#21a2f1}10. Generar archivo de funciones de normalización de caracteres10. Genere archivos de funciones de normalización de caracteres

Ejecute el siguiente comando para generar un archivo normproto.

执行命令: cntraining zwp.test.exp0.tr

11. Cambiar nombre de archivo\color{#21a2f1}11. Cambiar nombre de archivo11. Cambio de nombre de archivo

Cambie el nombre de los cuatro archivos inttemp, pffmtable, shapetable y normproto a [lang].xxx.

Aquí modificado a zwp.inttemp, zwp.pffmtable, zwp.shapetable y zwp.normproto

依次执行下面命令

rename normproto zwp.normproto

rename inttemp zwp.inttemp

rename pffmtable zwp.pffmtable

rename shapetable zwp.shapetable

11. Combinar archivos de entrenamiento\color{#21a2f1}11. Combinar archivos de entrenamiento11. Combinar archivos de entrenamiento

Ejecute el siguiente comando para generar el archivo zwp.traineddata.

执行命令 combine_tessdata zwp.

Copie el archivo del paquete de idioma "zwp.traineddata" generado en la carpeta tessdata en el directorio de carpetas recién creado, y luego puede usar el paquete de idioma generado por el entrenamiento para el reconocimiento de texto de imagen.

12. Prueba de código\color{#21a2f1}12. Prueba de código12. Prueba de código

  1. Introducir dependencias en pom
     <!--   pom  tess4j相关依赖   -->
        <dependency>
            <groupId>net.sourceforge.tess4j</groupId>
            <artifactId>tess4j</artifactId>
            <version>3.4.0</version>
            <exclusions>
                <exclusion>
                    <groupId>com.sun.jna</groupId>
                    <artifactId>jna</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
  1. el código

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
        //你的图片 1.png 为我自定义图片名字 其实使用的就是 上面的测试图片
        File imageFile = new File("D:\\OCR\\1.png");
        //你训练库的路径tessdata
        ITesseract instance = new Tesseract();
        //     模型文件夹必须叫做 tessdata
        instance.setDatapath("D:\\OCR\\Test2\\tessdata");
//        zwp 是刚刚训练过的 包
        instance.setLanguage("zwp");
//        chi_sim 是自带的中文包
//        instance.setLanguage("chi_sim");
        String result = null;
        try {
            result = instance.doOCR(imageFile);
        } catch (TesseractException e) {
            throw new RuntimeException(e);
        }
        System.out.println(result);
    }
}

Si la red no funciona, puede descargar el archivo del código fuente para operar
el código fuente de demostración


Se utiliza para configurar variables de entorno y generar archivos .box
Sitio web oficial de tesseract-ocr


Se utiliza para ajustar el contenido y la posición del texto en la imagen
Sitio web oficial de la herramienta jTessBoxEditor


Se utiliza para configurar el paquete de idioma (instancia.setLanguage)
otra dirección del paquete de idioma

Supongo que te gusta

Origin blog.csdn.net/weixin_41620505/article/details/129195725
Recomendado
Clasificación