• Python3的pytesseract和Tesseract-ocr的使用以及自己训练数据集的方法


    Python3的pytesseract和Tesseract-ocr的使用以及自己训练数据集的方法。

    一、安装pytesseract

    pip install pytesseract -i https://mirrors.aliyun.com/pypi/simple/ 

    二、安装PILpillow

    三、下载Windows tesseract-ocr并配置其环境(网上有很多教程大家可以自行收集),内容和配置python的编译环境差不多。

    四、修改pytesseract.py

    到你的Python的Lib\site-packages\pytesseract中找到pytesseract.py并修改其中的tesseract_cmd

    修改为:(亦可以报错后直接找到该文件后修改)

    tesseract_cmd = 'D:/Tesseract-OCR/tesseract.exe'(环境位置)

    五、训练数据集

    (1)下载jTessBoxEditor(网上搜索,可自行下载)

    (2)安装jdk1.8以上的环境

    (3)准备训练的标本,比如我的:you dont konw how hard to understand(有单词错误请自行忽略),图片越多越好,但是为了方便,此处随便打字并截取图片,大家可以自行选择。

     (4)将照片转化合并为tif格式,方便数据训练。

     选择merge TIFF,并选择图片,然后将它保存。

    (5)在新建的tif文件夹的导航栏输入cmd,弹出命令行窗口。

    (6)按照图片进行设置

    (7)训练语言设置为yy,训练文件夹自行选择好,之后选择make box file only,点击run。

    (8)在cmd命令行处依次输入:

    1. tesseract yy.test.exp0.tif yy.test.exp0 nobatch box.train
    2. echo test 0 0 0 0 0 >yy.font_properties
    3. unicharset_extractor yy.test.exp0.box

     

     

     (9)选择如下图,点击run:

     (10)最后执行:

    1. combine_tessdata yy.

     (11)将生成的“yy.traineddata”语言包文件复制到Tesseract-OCR 安装目录下的tessdata文件夹中

    Log输出中的Offset 1、3、4、5、13这些项不是-1,表示新的语言包生成成功,就可以使用训练生成的语言包进行图像文字识别了。

    (12)代码测试

    1. from PIL import Image
    2. import pytesseract
    3. img = Image.open("G:\\videos\\wvax_2\\train2\\yy.test.exp0.jpg")
    4. ocr_str = pytesseract.image_to_string(img,lang='yy',config = "--psm 7")
    5. print(ocr_str)

    效果:

     

    至此完成了数据训练和使用,看代码应该简单明了的知道如何使用yy训练数据集了,该方法生成的tif还可以通过 jTessBoxEditor修改,最终提高识别效果。具体方法请自行搜索,关于该库的使用和环境配置就介绍到这里,谢谢你的阅读。如文章有不懂的地方,请私信或者留言。

  • 相关阅读:
    Microsoft SQL Server Management Studio(2022版本)启动无法连接到服务器
    基于Java+SpringBoot+Mybaties+layui+Vue+elememt 实习管理系统 的设计与实现
    STM32WB55开发(4)----配置串口打印Debug调试信息
    React事件机制
    Express 6 指南 - 路由 6.1 简介 & 6.2 路由方法
    龙芯2k0300 - 智能车走马观碑组目标检测算法
    pytorch应用于MNIST手写字体识别
    蔚来杯2022牛客暑期多校训练营4
    commonJs和es6的区别
    9、动态SQL
  • 原文地址:https://blog.csdn.net/SmartGridequation/article/details/126656083