python训练自己中文语料库_Tesseract——OCR识别图像文本:python实现和训练语料库...

第一步:使用OCR识别文本

我们需要2个东西:

PIL(在python3下是Pillow)

Tesseract-OCR

首先把OCR的软件下载下来,然后把路径加入到环境变量之中。我们可以在cmd中调用Tesseract-OCR来识别文本。tesseract .png .txt -l chi_sim

然后我们就会发现一个我们命名的txt文档出现在当前文件夹下。打开之后其实就是识别出来的文本。但是识别率肯定是比较低的。上面的chi_sim语料库(可以识别中文的语料库,默认是识别英文和数字,无法识别中文的)是我在github上的tesseract-ocr的仓库里面可以找到的。刚开始找的时候找了好多博文才找到下载地址,其实去github寻找就可以了!下载下来之后我们将这个文件放在C:\Program Files (x86)\Tesseract-OCR\tessdata

路径下即可。当然这个是我的路径,可能你的会有出入。我们可以通过在cmd端输入指令来查看我们的当前的语料库,直接在cmd中输入 tesseract --list -lang即可看到如下内容:

查看语料库

如果你只是想要尝试下这样的方法体验一下,那么到这一步就够了。接下来我将使用python对图片进行批量的识别和输出在指定的文档中。

第二步:通过python代码识别文本

我们可以找下支持python的pytesseract的库,一开始我找到个pytesser3库,但是后来发现在两年前就不再更新了。于是我寻找到了在一年前还不支持python3的官方库——tesseract。可能你会碰到导入Image模块的问题,如果没有的话最好,但是如果有我万分的推荐你去看看是不是有一个文件夹的名字叫做了Image。如果有改了把!下面是直接的调用并输出识别后的文本信息:

python调用tesseract—OCR

具体的实现文档你可以在Tesseract 官方文档看到使用的调用方法!

如何实现批量识别并保存在文本中:

python调用Tesseract批量识别图片并输出识别时间待续

第三步:训练一张图片的语料库:

在写这篇文章我看了几十篇博客,最详细的基本上就是这篇文章了。Tesseract-OCR 3.0语料库训练步骤,推荐大家看接下来的文章可以先去看看这篇文章。大家都说什么Github上Tesseract-OCR的官方文档更加清晰,我看起来是云里雾里。

先大致说一下步骤:我们如何训练自己的语料库呢?需要原材料也就是我们的tif图片,但是tesseract-OCR无法直接利用tif图片,需要名为box的文件。我们需要使用指令通过tif产生box,这个box是唯一的,因为我们训练的只是一张图片的语料库,可以直接上述博客的步骤去实践就可以了。这里写这个是让大家更加的熟悉这个过程,等到要分析多张图片的时候更加游刃有余。有了box文件之后,我们需要通过指令产生后缀tr的特征文件。然后再产生字符集文件unicharset文件,最后通过tr文件产生聚集字符特征文件,分别是后缀为inttemp、pffmatable、normproto的文件,有了上述这些文件之后我们可以通过指令把这些训练文件合并起来。得到最后后缀为traineddata的训练文件。而这个就是我们训练的目的——语料库。

这中间有一个提高识别率的步骤,就是可以产生字典文件,一个存放出现频率较高的字符,一个存放所有字符集,至少一个字符,每个字符一行,另外通过指令还会产生一个符号文件、一个数字文件、一个用户自定义字符文件,总共五个文件。

需要提醒的是:tif的命名是有要求的,必须按照文章所提示的格式来做,具体的会在第四步操作展示给大家看。前面所有自动产生的文件如果没有点的话基本上就是只有扩展名,你需要自己手动将名字改为前缀一致。即你到时候最后一条合并指令的lang.代表合并所有lang为名的文件。合并完了之后需要将训练好的文件放到程序的tessdata子目录下,否则会提示找不到语言库文件。

第四步:使用jTessBoxEditor同时训练多张图片的语料库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值