Tesseract-OCR 5.0LSTM训练

准备工作

1.安装tesseract5.0版本

2.配置tesserac环境变量

3.jTessBoxEditor(需要java环境)

很多博客已有详细教程,不再赘述,本文以训练为主

最终文件目录:

全网最全最细Tesseract-OCR 5.0LSTM训练_人工智能

--tif 需要训练的tif文件

--lstmf 后文会讲到生成的方式

--txt 后文会讲到生成的方式

--box 后文会讲到生成的方式

--lstm 后文会讲到生成的方式

--traineddata 简体中文包后文会有下载方式

--output 文件夹存放训练内容

规范

命名:按照官方的命名规范,不然会出现不明问题

tif文件命名格式[lang].>[fontname].exp[num].tif

tif命名规则:lang为语言名称,fontname为字体名称,num为图片序号,方便记录训练样本;

例本次需要训练自定义字库znzd、字体名normal,则命名为znzd.normal.exp0.tif

特别注意:5.0语法是和4.0有区别的

后文都以znzd.normal.exp0为文件名字,根据自己实际情况替换

代码中不能包含回车

1.生成.box文件

tesseract znzd.normal.exp0.tif znzd.normal.exp0 -l chi_sim --psm 6 lstmbox
  • 1.

语法: tesseract [tif文件名字] [生成文件名(一般情况与tif名字一样注意没有后缀)] -l [语言库] --psm [psm值] lstmbox

--chi_sim:中文语言库(可替换自己的语言库)

psm

0 = Orientation and script detection (OSD) only.

1 = Automatic page segmentation with OSD.

2 = Automatic page segmentation, but no OSD, or OCR. (not implemented)

3 = Fully automatic page segmentation, but no OSD. (Default)

4 = Assume a single column of text of variable sizes.

5 = Assume a single uniform block of vertically aligned text.

6 = Assume a single uniform block of text.

7 = Treat the image as a single text line.

8 = Treat the image as a single word.

9 = Treat the image as a single word in a circle.

10 = Treat the image as a single character.

11 = Sparse text. Find as much text as possible in no particular order.

12 = Sparse text with OSD.

13 = Raw line. Treat the image as a single text line

中文翻译

0 = 仅方向和脚本检测 (OSD)。

1 = 自动页面分割,带 OSD。

2 = 自动页面分割,但无 OSD 或 OCR。(未执行)

3 = 完全自动页面分割,但无 OSD。(默认值)

4 = 假设一列文字大小可变。

5 = 假定垂直对齐的单个统一文本块。

6 = 假定单个统一的文本块。

7 = 将图像视为单一文本行。

8 = 将图像视为单个单词。

9 = 将图像视为圆圈中的单个单词。

10 = 将图像视为单个字符。

11 = 文本稀疏。不按特定顺序查找尽可能多的文本。

12 = 带 OSD 的稀疏文本。

13 = 原始行。将图像视为单行文本、

2.jTessBoxEditor矫正

注意:box坐标框的范围5.0是从单个文字改成一整行,需要以一行作为矫正,不是4的时候拆成一个个框,不然会无限循环打印Compute CTC targets failed! 又浪费了训练时间

具体官方说明: github.com/tesseract-o…

3.生成LSTMF文件

tesseract znzd.normal.exp0.tif znzd.normal.exp0 -l chi_sim --psm 6 lstm.train
  • 1.

语法: tesseract [tif文件名] [生成文件名(一般情况与tif名字一样注意没有后缀)] -l [语言库] --psm [psm值] lstm.train

--chi_sim:中文语言库(可替换自己的语言库)

4.提取LSTM文件

 github.com/tesseract-o…下载所需语言的.traineddataw文件,放入同级文件夹,此为chi_sim语言(第一次用tesseract\tessdata目录下的chi_sim.traineddata报错了,找了很多博客 建议去 /tessdata_best下载)

combine_tessdata -e chi_sim.traineddata chi_sim.lstm
#此例是下载后文件方在根目录下执行 所以没带路径 也能是 -e E:\xx\chi_sim.traineddata
  • 1.
  • 2.

语法: combine_tessdata -e [语言.traineddata] [文件名称(也可以路径+文件名称)]

初次可以用chi_sim 后续可替换自己的自定义字体

5.创建txt文件

名称为:znzd.normal.exp0.list.text(可根据之前tif取名的名字命名)

内容: E:\xxx\znzd.normal.exp0.lstmf(第三步自己生成的LSTMF文件路径)

6.训练

lstmtraining   --model_output E:\xxx\output\  --continue_from E:\xxx\chi_sim.lstm  --traineddata   E:\xxx\chi_sim.traineddata --train_listfile  E:\xxx\znzd.normal.exp0.list.txt  --max_iterations 0     --target_error_rate 0.001
  • 1.

语法:

–model_output 模型训练输出的路径(模型训练文件,会自动生成output_checkpoint文件可以用于后期训练)

–continue_from 训练从哪里开始(可以是第四步提取的lstm文件路径。也可以是上次训练的output_checkpoint文件路径)

–train_listfile 第五步创建的TXT文件路径ch.simhei.exp0.list.txt文件路径

–traineddata .traineddata文件的路径(此例以chi_sim.traineddata)

–debug_interval 当值为-1时,训练结束,会显示训练的一些结果参数,此参数可略去

–max_iterations 指明训练遍历次数 最大是9000,0 表示无限迭代(类型:整数默认值:0)

–target_error_rate 0.01 训练至错误率低于0.01终止

如果一切配置成功,训练会持续一段时间请耐心等待

7.合并训练 生成.traineddata文件

训练完成后合并结果.traineddata

lstmtraining --stop_training --continue_from="E:\xxx\output\output_checkpoint" --traineddata="E:\xxx\chi_sim.traineddata" --model_output="E:\xxx\znzd.traineddata"
  • 1.

语法:

stop_training 默认要有

–continue_from 第6步model_output输出路径的output_checkpoint文件路径

–traineddata 已有.traineddata文件的路径

–model_output 输出训练好的语言包的路径 路径+语言包名.traineddata

8.查看识别结果

把新语言traineddata文件放入\tesseract\tessdata文件夹下

tesseract znzd.normal.exp1.tif result -l znzd
#tesseract 图片名称 生成的结果文件的名称 -l 新语言名称
  • 17
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FL1623863129

你的打赏是我写文章最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值